Как запустить интеграцию только при слиянии с мастером

У меня Travis CI, который работает, как и ожидалось, для приложения Go

language: go
go:

- "1.10.x"

script:

- go get -v -t -d ./...
- go test -v ./...

Этот CI занимает около 60-80 sec бежать.

CI запускается в двух сценариях

  1. Отправка в новую ветку
  2. Слияние с мастером

Теперь у меня есть новый файл, который называется integration_test.go который выполняет интеграционный тест, который занимает около 10 минут (развертывание и т. д.), и я хочу запускать этот тест только при слиянии с мастером (поскольку он более тяжелый), а не запускаться при отправке в филиалы, как это можно сделать, Трэвис?

Я пробовал с

on:
    branch: master
    condition: `go test -v integration_test.go`

1 ответ

Решение

То, что вы, вероятно, ищете здесь, является "условной работой". Используя пример здесь: https://docs.travis-ci.com/user/build-stages/matrix-expansion/

пытаться:

language: go

go:
    - "1.10.x"

script:
    - go get -v -t -d ./...
    - go test -v ./...

jobs:
    include:
        - stage: integration
          if: branch = master
          script: go test -v integration_test.go
Другие вопросы по тегам