GitHub Actions 中如何让多个 job 共享同一个 artifact?
我用 GitHub Actions 做 CI/CD,想在 build job 里生成一个 dist 文件夹,然后在 deploy job 里用它。但两个 job 是并行跑的,deploy 找不到 build 产出的文件,咋整?
我试过用 actions/upload-artifact 和 download-artifact,但好像没生效。是不是 job 之间默认不共享文件系统?那正确的做法是啥?
这是我的 workflow 配置片段:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm run build
- uses: actions/upload-artifact@v4
with:
name: dist-files
path: dist/
deploy:
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/download-artifact@v4
with:
name: dist-files
- run: ls -la
但 deploy 步骤里 ls 看不到 dist 内容,是我漏了什么吗?
dist-files/目录下,不在当前目录。直接这样改:
指定
path: dist让它下载到你期望的目录就行了。另外说一句,你配置里已经有needs: build了,这俩 job 不是并行的,deploy 会等 build 跑完才跑,所以 artifact 肯定存在。