Это способ создать ссылки для тестирования и развертывания среды и добавить дополнительные шаги в yaml? - PullRequest
0 голосов
/ 16 октября 2019

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

1 Ответ

0 голосов
/ 18 октября 2019

К сожалению, я не нашел решения вышеупомянутого вопроса.

Я нашел обходной путь, поэтому deployment stage require другие этапы, которые нужно выполнить в первую очередь. Это означает, что можно создавать файлы, атрибуты и т. Д. И использовать их позднее на этапе развертывания.

Это исключает необходимость дублирования частей рабочего процесса. Чтобы сохранить файлы от этапа к этапу в рабочем процессе в Circle CI, есть другой ответ на StackOverflow .

...