为了账号安全,请及时绑定邮箱和手机立即绑定

仅在合并到 master 时运行任务

仅在合并到 master 时运行任务

Go
DIEA 2023-06-01 18:16:24
我使用以下按预期工作的配置,它在每个 PR 上运行命令或合并到 master,现在我想做一些集成测试,我只想在合并到 master 时运行,所有 PR 应该保持不变(并像以前一样运行以下配置)。这里的细微差别是,对于集成测试,我需要其他 docker 映像和不同的运行命令来执行(只有在合并到主服务器时才应该执行),是否可以使用 CircleCI 来完成?# Golang CircleCI 2.0 configuration fileversion: 2jobs:  build:    docker:      # specify the version      - image: circleci/golang:1.11    working_directory: /go/src/sbr    steps:      - checkout      - run: go version      - run: go env      - run: go get -v -t -d ./...      - run: go test -v ./...我尝试在现有图像下添加另一个 docker 图像,但出现错误更新:version: 2jobs:  build:    docker:      - image: circleci/golang:1.11    working_directory: /go/src/sbr    steps:      - checkout      - run: go version      - run: go env      - run: go get -v -t -d ./...      - run: go test -v ./...  test-integration:    docker:      - image: other-imageworkflows:  version: 2  builds:    jobs:      - build  integration-test:    jobs:      - test-integration:          requires:            - build          filters:            branches:              only: master这里的问题是我在添加到第二个工作流程时出错require  requires:    - build 我希望在测试之前test-integration它也能build按照要求运行作业。我做错了什么?错误是:requires job \"build\" but \"build\" is not part of this workflow.# At least one job in the workflow must have no dependencies.# The following jobs are unreachable: integration# # -------# Don't rerun this job. Rerunning will have no effect.false
查看完整描述

1 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

您的配置有一个名为的作业build,没有工作流。听起来您想要的是为集成测试运行第二个作业,并且仅在分支为 master 时才运行第二个作业。要完成这两个任务,您将使用包含两个作业的工作流。

这可能是什么样子的一个例子:

jobs:

  build:

    docker:

     - image: circleci/golang:1.11

    ...


  test-integration:

    docker:

      - image: other-image

    ...


workflows:

  version: 2

  workflow-name:

    jobs: 

      - build

      - test-integration:

          filters:

            branches:

              only: master


查看完整回答
反对 回复 2023-06-01
  • 1 回答
  • 0 关注
  • 134 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信