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

Is it a way to create references for test and deploy environment and add extra steps afterwards in yaml?

我必须将工作流程纳入管道。我希望我的 testdeploy 管道共享相同的步骤,但除此之外,我想在 deploy 管道中添加额外的步骤。

我试图寻找解决方案并遇到了 Whosebug QA。不幸的是,none 的建议奏效了。此外,它们中的大多数为管道构建和维护创造了额外的工作。

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 中将文件从一个阶段保存到一个工作流中, 上还有另一个答案。