主题
工作流语法
触发器 (on)
- 单事件触发:yml
on: push - 多事件触发:yml
on: push: branches: - main pull_request: types: - opened - 定时触发:yml
on: schedule: - cron: '0 0 * * *'
权限 (permissions)
- 默认
GITHUB_TOKEN权限可通过permissions配置:ymlpermissions: 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
