能否通过GitHub Actions实现初始Job输出供多后续Job复用?
你的方案完全可行,具体实现如下
因为GitHub Actions的每个Job都运行在独立的Runner环境中,默认无法直接共享文件系统,所以需要借助**工件(Artifacts)**功能来传递prepare Job中检出的代码,实现跨Job复用。
完整工作流示例
name: Build Workflow jobs: prepare: runs-on: ubuntu-latest steps: - name: 检出代码 uses: actions/checkout@v3 - name: 上传代码作为工件 uses: actions/upload-artifact@v4 with: name: source-code path: . # 上传当前目录下所有检出的代码文件 build-test: needs: prepare # 依赖prepare Job完成 runs-on: ubuntu-latest steps: - name: 下载prepare阶段的代码工件 uses: actions/download-artifact@v4 with: name: source-code path: . # 将代码下载到当前工作目录 - name: 构建Debug版本 run: build --configuration:debug build-deploy: needs: prepare # 依赖prepare Job完成 runs-on: ubuntu-latest steps: - name: 下载prepare阶段的代码工件 uses: actions/download-artifact@v4 with: name: source-code path: . - name: 构建Release版本 run: build --configuration:release
解决的痛点
- 仅执行一次
actions/checkout@v3,避免了矩阵方案中重复检出代码的问题 - 两个构建Job各自执行对应配置的构建命令,无需额外的条件判断,步骤简洁无冗余
内容的提问来源于stack exchange,提问作者Pure.Krome
相关产品推荐
相关产品推荐

