Как заставить Circle CI загружать и развертывать образ на AWS ECS только после успешных тестов? - PullRequest
0 голосов
/ 14 июля 2020

Я развертываю свое приложение Node.Js через Circle CI в AWS ECS.

Я хотел бы сначала запустить тесты, а только потом передать sh изображение в репозиторий. Однако в настоящее время задача запуска тестов выполняется одновременно с задачей AWS ECS. Ниже мой файл ./circleci/config.yml.

Как мне изменить это поведение, чтобы изображение выталкивалось только в том случае, если тесты прошли успешно?

version: 2.1
orbs:
  aws-ecr: circleci/aws-ecr@6.10.0
jobs:
  test:
    docker:
      - image: cypress/base:12.18.0
    steps:
      - checkout
      - run: npm ci
      - run: npm run cy:verify
      # save npm dependencies and Cypress binary for future runs
      - save_cache:
          key: cache-{{ checksum "package.json" }}
          paths:
            - ~/.npm
            - ~/.cache
      - run: npm run test:ci

workflows:
  version: 2.1
  test:
    jobs:
      - test
      - aws-ecr/build-and-push-image:
          create-repo: true
          no-output-timeout: 10m
          repo: 'stage-instance'

Спасибо!

1 Ответ

2 голосов
/ 15 июля 2020

Добавьте в рабочий процесс требуемый шаг для фильтрации по условию.

version: 2.1
orbs:
  aws-ecr: circleci/aws-ecr@6.10.0
jobs:
  test:
    docker:
      - image: cypress/base:12.18.0
    steps:
      - checkout
      - run: npm ci
      - run: npm run cy:verify
      # save npm dependencies and Cypress binary for future runs
      - save_cache:
          key: cache-{{ checksum "package.json" }}
          paths:
            - ~/.npm
            - ~/.cache
      - run: npm run test:ci

workflows:
  version: 2.1
  test:
    jobs:
      - test
      - aws-ecr/build-and-push-image:
          create-repo: true
          no-output-timeout: 10m
          repo: 'stage-instance'
          requires:
            - test
...