>我必须将工作流工作流放入管道中。我希望我的test
和deploy
管道共享相同的步骤,但最重要的是,我希望在deploy
管道中加入额外的步骤。
我试图寻找解决方案,并遇到了StackOverflow QA。不幸的是,这些建议都没有奏效。此外,它们中的大多数都为管道构建和维护创造了额外的工作。
config.yml
如下所示:
version: 2.1
do_stuff: &do_stuff
steps:
- checkout
- run:
mvn clean test
- store_artifacts:
path: htmlcov
- store_test_results:
path: test-results
jobs:
build:
docker:
- image: circleci/openjdk:8-jdk
<<: *do_stuff
deployment:
docker:
- image: circleci/openjdk:8-jdk
<<: *do_stuff
steps:
- run:
mvn deploy
workflows:
build-and-test-workflow:
jobs:
- build-and-test
deployment-workflow:
jobs:
- deployment:
requires:
- build-and-test
我的问题是steps
覆盖<<: *do_stuff
引用中的步骤,并且我找不到可接受的使用参考解决方案。我想要解决方案的原因看起来像这样,mvn deploy
应该严格遵循参考,我不想复制管道。在实际工程中,管道方式比较复杂。
有什么方法可以绕过yml
语法的这种限制吗?在这两者之间,我正在使用pipeline
如果它有任何区别。
不幸的是,我没有找到上述问题的任何解决方案。
我找到了一个解决方法,因此deployment
先执行require
其他阶段。这意味着可以生成文件、属性等,并在部署阶段稍后使用它。
它消除了复制部分工作流程的需要。要将文件从一个阶段保存到Circle CI
的工作流中,StackOverflow还有另一个答案。