这是一种为测试和部署环境创建引用并在之后在 yaml 中添加额外步骤的方法吗?



>我必须将工作流工作流放入管道中。我希望我的testdeploy管道共享相同的步骤,但最重要的是,我希望在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还有另一个答案。

最新更新