如何让GitHub Actions的test作业仅依赖build矩阵中的Ubuntu作业?
解决方案
要让test作业仅依赖build矩阵中的Ubuntu实例,只需修改test的needs配置,精准指定目标矩阵作业即可:
修改后的完整配置
name: build-and-test jobs: build: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] # 此处添加你的构建步骤 steps: - uses: actions/checkout@v4 # 示例构建命令,根据你的项目替换 - run: echo "Building on ${{ matrix.os }}" test: runs-on: ubuntu-latest # 仅依赖build矩阵中os为ubuntu-latest的作业实例 needs: build.os=ubuntu-latest steps: # 此处添加你的测试步骤 - uses: actions/checkout@v4 - run: echo "Running tests on Ubuntu"
关键说明
- 原配置中
needs: build会等待build矩阵的所有3个作业完成,而needs: build.os=ubuntu-latest可以精准定位到矩阵中os参数为ubuntu-latest的特定作业实例。 - 配置后,Ubuntu构建完成后
test会立即启动,无需等待macOS和Windows的构建任务结束。 - 保留
fail-fast: false的情况下,macOS或Windows的构建失败不会影响Ubuntu构建及test作业的执行。
内容的提问来源于stack exchange,提问作者Ewout ter Hoeven
相关产品推荐
相关产品推荐

