在GitHub Actions中,假设我有一个像这样的构建配置,它在 3 个不同的操作系统上构建我的程序并在 Ubuntu 上测试它:
name: build-and-test
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
test:
runs-on: ubuntu-latest
needs: build
Run Code Online (Sandbox Code Playgroud)
我希望该test作业依赖于该build作业运行的 Ubuntu。然而,现在这取决于这三个人。我如何指定作业test只需要 ubuntu 从build作业中运行即可在开始运行之前完成,而不是全部三个?
TL;DR:我希望testUbuntu 构建作业完成后立即运行该作业,而不是等待 macOS 和 Windows 构建作业。
根据 GitHub Actions 的当前实现,这是不可能的。我的建议是将 ubuntu 拉出自己的工作,这样它的执行就独立于其他人。
name: build-and-test
jobs:
build-slow:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [macos-latest, windows-latest]
build-ubuntu:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
test:
runs-on: ubuntu-latest
needs: build-ubuntu
Run Code Online (Sandbox Code Playgroud)
参考:https://github.com/orgs/community/discussions/25364#discussioncomment-4107131 https://docs.github.com/en/actions/using-jobs/using-a-matrix-for-your-jobs #处理失败
| 归档时间: |
|
| 查看次数: |
1496 次 |
| 最近记录: |