Skip to content

创建重复任务输入cron表达式是展示最近5次计划执行时间 #44

创建重复任务输入cron表达式是展示最近5次计划执行时间

创建重复任务输入cron表达式是展示最近5次计划执行时间 #44

Workflow file for this run

name: Build and Push Docker Image
on:
push:
branches:
- master
tags:
- 'v*'
pull_request:
branches:
- master
jobs:
build-and-push:
runs-on: ubuntu-latest
steps:
# 1. 检出代码
- name: Checkout repository
uses: actions/checkout@v3
# 2. 从 version.yml 读取版本号 (修复版)
- name: Extract version from version.yml
id: version
run: |
# 检查文件是否存在
if [ ! -f "version.yml" ]; then
echo "❌ 错误:version.yml 文件不存在"
exit 1
fi
echo "=== version.yml 内容 ==="
cat version.yml
echo "======================"
# 方法1: 使用简单的grep和sed提取(无需安装yq)
RAW_VERSION=$(grep -E '^version:' version.yml | cut -d':' -f2 | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
if [ -z "$RAW_VERSION" ]; then
echo "❌ 错误:无法从 version.yml 读取 version 字段"
exit 1
fi
# 清理版本号(移除引号和v前缀)
CLEAN_VERSION=$(echo "$RAW_VERSION" | tr -d '\"'"'" | sed 's/^v//')
# 验证版本格式 (x.y.z)
if [[ ! "$CLEAN_VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
echo "❌ 错误:版本号格式无效,应为 x.y.z(例如 1.0.1)"
echo "当前值: '$CLEAN_VERSION'"
exit 1
fi
echo "✅ 版本号: $CLEAN_VERSION"
echo "version=$CLEAN_VERSION" >> $GITHUB_OUTPUT
# 3. 登录 Docker Hub
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
# 4. 设置 Docker Buildx
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
# 5. 构建并推送 Docker 镜像
- name: Build and push
uses: docker/build-push-action@v4
with:
context: .
file: ./Dockerfile
push: true
tags: |
7ommymerlin/notify-scheduler:${{ steps.version.outputs.version }}
7ommymerlin/notify-scheduler:latest
# 6. 验证推送结果
- name: Verify pushed tags
run: |
echo "✅ 镜像已成功推送至 Docker Hub"
echo "📦 镜像标签:"
echo " - 7ommymerlin/notify-scheduler:${{ steps.version.outputs.version }}"
echo " - 7ommymerlin/notify-scheduler:latest"