我是CircleCI工作流程的新手,我想创建一个包含两个步骤的工作流程。

  • 第一步(构建作业)将构建Docker镜像并将其推送到具有特定标签的Docker注册表。成功终止第一个之后
    步骤将触发第二个工作流程步骤并移交
    Docker镜像。
  • 然后,第二步将通过步骤1(例如,使用ENV变量)移交来下载图片。像
  • version: 2
        jobs:
          build:
            docker:
              - image: docker.repo.ch/image:${TAG}
    

    在CircleCI工作流程中,是否存在某种机制将值(value)作为参数从一个构建作业移交给另一个?

    最佳答案



    https://circleci.com/docs/2.0/env-vars/#setting-an-environment-variable-in-a-step

    将变量导出到下一个作业:

    workflows:
      version: 2
      pass_tag:
        jobs:
        - create_tag
        - use_tag:
            requires:
            - create_tag
    
    executors:
      node:
        docker:
          - image: circleci/node:4.8.2
    
    jobs:
      create_tag:
        executor: node
        steps:
        - run: echo "export MY_TAG=$CIRCLE_SHA1" >> $BASH_ENV
      use_tag:
        executor: node
        steps:
        - run: echo $MY_TAG
    

    推送并使用docker镜像:

    使用CircleCI orbs(就像一个库)来构建并推送图像:
    version: 2.1
    orbs:
        aws-ecr: circleci/[email protected]
    
    workflows:
      version: 2
      example:
       jobs:
          - aws-ecr/build-and-push-image:
              account-url: DEV_AWS_ECR_ACCOUNT_URL
              aws-access-key-id: DEV_ACCESS_KEY_ID
              aws-secret-access-key: DEV_SECRET_ACCESS_KEY
              create-repo: true
              repo: '${CIRCLE_PROJECT_REPONAME}'
              region: AWS_DEFAULT_REGION
              tag: '${CIRCLE_SHA1}'
          -  pull_image:
              requires:
                  - aws-ecr/build-and-push-image
    
    jobs:
        pull_image:
            *** pull and use your image here ***
    

    08-28 06:56