0

我通过 Circle CI 将我的 Node.Js 应用程序部署到 AWS ECS。

我希望首先运行测试,然后才将图像推送到存储库。但是,目前运行测试的任务与 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'

谢谢!

4

1 回答 1

2

在工作流中添加要求步骤以根据条件进行过滤。

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
于 2020-07-15T13:28:49.057 回答