工作流之间对Github动作的依赖性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工作流之间对Github动作的依赖性相关的知识,希望对你有一定的参考价值。
我有一个带有两个工作流程的monorepo:
.github/workflows/test.yml
name: test
on: [push, pull_request]
jobs:
test-packages:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: test packages
run: |
yarn install
yarn test
...
.github/workflows/deploy.yml
deploy-packages:
runs-on: ubuntu-latest
needs: test-packages
steps:
- uses: actions/checkout@v1
- name: deploy packages
run: |
yarn deploy
env:
NODE_AUTH_TOKEN: $ secrets.NPM_TOKEN
...
这不起作用,我无法在其他工作流程中引用工作:
### ERRORED 19:13:07Z
- Your workflow file was invalid: The pipeline is not valid. The pipeline must contain at least one job with no dependencies.
是否可以在工作流程之间创建依赖关系?
我想要的是对标签运行test.yml
,然后运行deploy.yml
,仅对推和拉请求运行test.yml
。我不想在工作流之间重复作业。
答案
是否可以在工作流之间创建依赖关系?
我认为目前尚不可能。也许这是他们将来会添加的功能。就个人而言,我认为很可能会添加CircleCI之类的功能来共享工作流的公共部分。
对于替代解决方案,是否将所有内容都像以下工作一样放在相同的工作流程中?仅当按下以deploy-packages
开头的标签时,才会执行v
作业。
name: my workflow
on: [push, pull_request]
jobs:
test-packages:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: test packages
run: echo "Running tests"
deploy-packages:
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
needs: test-packages
steps:
- uses: actions/checkout@v1
- name: deploy packages
run: echo "Deploying packages"
以上是关于工作流之间对Github动作的依赖性的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Github Actions 工作流中从 Github 包访问 Maven 依赖项?