创建重复任务输入cron表达式是展示最近5次计划执行时间 #44
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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" |