docker - 仅在测试成功后,如何使Circle CI上传并在AWS ECS上部署镜像?

标签 docker amazon-ecs circleci circleci-workflows

我通过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'

谢谢!

最佳答案

在工作流程中添加一个require步骤以根据条件进行过滤。

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

关于docker - 仅在测试成功后,如何使Circle CI上传并在AWS ECS上部署镜像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62900717/

相关文章:

docker - 为什么loop-lvm设备存储不适合生产?

docker - 作为 alpine 容器中的非 root 用户的 Vault 开发模式初始化错误 :/dev/null/. Vault 不是目录

docker - 从docker-compose v.3文件启动docker命令

amazon-web-services - AWS ECS Fargate 平台 1.4 错误 ResourceInitializationError : unable to pull secrets or registry auth: execution resource

go - Circleci Ubuntu 14.04 构建镜像有多个 gopath 值

mysql - 如何运行 'mysql'文件?

python - 连接到 Docker 容器上的 PostgreSQL 数据库

amazon-web-services - ECS:docker ps不显示正在运行的任务

docker - 负载均衡器背后的Laravel事件-如何使事件对自动伸缩组中的所有服务器可见

unix - CircleCI 运行多行命令