Skip to content

工作流语法

触发器 (on)

  • 单事件触发
    yml
    on: push
  • 多事件触发
    yml
    on:
      push:
        branches:
          - main
      pull_request:
        types:
          - opened
  • 定时触发
    yml
    on:
      schedule:
        - cron: '0 0 * * *'

权限 (permissions)

  • 默认 GITHUB_TOKEN 权限可通过 permissions 配置:
    yml
    permissions:
      contents: read
      issues: write
  • 全局设置:
    yml
    permissions: read-all

默认设置 (defaults)

  • 设置默认 shell 和工作目录:
    yml
    defaults:
      run:
        shell: bash
        working-directory: ./scripts

并发控制 (concurrency)

  • 限制并发运行:
    yml
    concurrency:
      group: ${{ github.workflow }}-${{ github.ref }}
      cancel-in-progress: true

作业 (jobs)

  • 定义作业:
    yml
    jobs:
      build:
        runs-on: ubuntu-latest
        steps:
          - name: Checkout code
            uses: actions/checkout@v4
          - name: Run tests
            run: npm test
  • 作业依赖:
    yml
    jobs:
      build:
        runs-on: ubuntu-latest
      test:
        runs-on: ubuntu-latest
        needs: build

过滤模式

  • 分支和标签匹配:
    yml
    branches:
      - main
      - 'releases/**'
  • 路径过滤:
    yml
    paths:
      - '**.js'

容器支持

  • 在容器中运行作业:
    yml
    jobs:
      container-job:
        runs-on: ubuntu-latest
        container:
          image: node:18
          env:
            NODE_ENV: development
          ports:
            - 80
          volumes:
            - my_docker_volume:/volume_mount

参考

基于 MIT 许可发布