go - 仅在合并到 master 时运行任务
问题描述
我使用以下配置按预期工作,它在每个 PR 上运行命令或合并到 master,现在我想做一些我只想在合并到 master 时运行的集成测试,所有 PR 应该保持不变(并像以前一样运行以下配置)。这里的细微差别是,对于集成测试,我需要执行其他 docker 映像和不同的运行命令(仅在合并到主服务器时才应执行),是否可以使用 CircleCI 来完成?
# Golang CircleCI 2.0 configuration file
version: 2
jobs:
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: 2
jobs:
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-image
workflows:
version: 2
builds:
jobs:
- build
integration-test:
jobs:
- test-integration:
requires:
- build
filters:
branches:
only: master
添加到第二个工作流程时出现错误的问题require
requires:
- build
我希望在测试之前test-integration
它也将build
作为 per-requiste 运行该作业。我做错了什么?
错误是:
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
解决方案
您的配置有一个名为的作业build
并且没有工作流。听起来您想要的是为集成测试运行第二个作业,并且仅在分支为 master 时才运行第二个作业。要完成这两个任务,您将使用包含两个作业的工作流。
请参阅https://circleci.com/docs/2.0/configuration-reference/#workflows
一个可能看起来像的例子:
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
推荐阅读
- flutter - Flutter Run show Getter not found: 'malloc'. 没有为“VersionInfoQuerier”类定义方法“calloc”
- typescript - 在导出之前展开对象
- r - 通过使用 ggplot 循环列来创建多个带有百分比的饼图
- unity3d - Assets/Script/C2.cs(16,1):错误 CS1022:类型或命名空间定义,或预期文件结尾
- java - 碰撞检测不起作用。Circle和Square在计算后未检测到碰撞
- firebase - TypeError:无法读取未定义错误的属性“应用程序” - Flutter 在 Flutter Web 应用程序中使用 Firebase Auth 和 Firestore
- c# - 有没有人成功在 Ubuntu 18.04 上运行 mipsdk-dotnet-file-quickstart-main?
- c - C 用户定义函数中的数组参数无法通过 sizeof() 正确计算形状
- ruby-on-rails - 刺激反射在生产轨道 6 中停止工作
- ruby-on-rails - 如何通过配置更改管理不同版本的 Rails API