跳转至

git_workflows

下面是docker快速build发布的 workflows

name: Docker Image CI  # 定义工作流的名称为 "Docker Image CI"

on:  # 定义触发工作流的事件
  push:  # 当代码推送到以下分支时触发
    branches: [ "main" ]
  pull_request:  # 当有拉取请求到以下分支时触发
    branches: [ "main" ]
  schedule:
    # 设置定时任务的CRON表达式,这个例子是每天凌晨 1 点执行 时差
    - cron: '10 9 * * *'
# 设置GitHub UB_TOKEN的权限以允许部署到GitHub Pages
permissions:
  contents: write
  pages: write
  id-token: write

jobs:  # 定义作业
  build:  # 定义一个名为 build 的作业
    runs-on: ubuntu-latest  # 指定作业在 ubuntu-latest 系统上运行
    environment: xxx  # 指定作业的环境,但此处被留空
    steps:  # 定义作业中的一系列步骤
      - uses: actions/checkout@v3  # 使用 actions/checkout 动作检出代码到工作目录
      - name: Build the Docker image  # 给步骤命名为 "Build the Docker image"
        run: docker build . --file Dockerfile --tag my-image-name:$(date +%s)  # 构建 Docker 镜像的命令

      - name: Docker Setup Buildx  # 设置 Docker 的 Buildx
        uses: docker/setup-buildx-action@v2.10.0  # 使用 docker/setup-buildx-action 动作

      - name: Docker Login  # 登录到 Docker 仓库
        uses: docker/login-action@v2.2.0  # 使用 docker/login-action 动作
        with:  # 指定登录所需的用户名和密码,从 GitHub 仓库的 secrets 中获取
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_PASSWORD }}

      - name: Build and Push Images  # 构建并推送镜像
        id: buildx  # 给这个步骤一个唯一的 id
        uses: docker/build-push-action@v4.1.1  # 使用 docker/build-push-action 动作
        with:  # 指定构建和推送镜像所需的参数
          context: .  # 指定构建上下文为当前目录
          platforms: linux/amd64,linux/arm64,linux/arm/v7  # 指定要构建的平台
          push: true  # 将构建的镜像推送到 Docker 仓库
          tags: admibo/clash_vpn:latest  # 指定要为镜像打的标签,使用 latest 标签
  tests: # 发送通知,执行cloudfire上的任务
    name: Tests
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2

      - name: Setup BATS
        uses: mig4/setup-bats@v1
        with:
          bats-version: 1.5.0

      - name: deploy-nav
        run: curl -X POST "https://api.cloudflare.com/client/v4/pages/webhooks/deploy_hooks/7 "
      - name: deploy-hook
        run: curl -X POST "https://api.cloudflare.com/client/v4/pages/webhooks/deploy_hooks/7 "

      - name: deploy-hook # 更新一些记录到本仓库,注意使用下面方式后就不要开启push 触发任务的功能,否则会陷入死循环,任务反复执行
        run: echo `date "+%Y-%m-%d %H:%M:%S"` >> .github/readme123

      - name: Commit changes
        uses: actions-x/commit@v6
        with:
          email: me@example.com
          name: GitHub Actions Autocommitter
          branch: master
          files: .github/readme123
          force: true
          directory: .