Я должен рабочие процессы в конвейер. Я хочу, чтобы мои конвейеры 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
, если это имеет какое-либо значение.