master Update .travis.yml
Commenting google-cloud-sdk snap since it's available on Focal dist
travis-ci/worker:.travis.yml@c32b553
language: go
go: 1.22.x
dist: focal
git:
depth: 10
# Build master and PRs which merge into those branches
# We don't automatically build other branches when they're pushed; create a PR to cause the CI to run.
branches:
only:
- master
cache:
directories:
- vendor
- $HOME/.cache/go-build
- $HOME/gopath/bin
- $HOME/gopath/pkg/mod
services:
- rabbitmq
- docker
- redis
env:
global:
- AMQP_URI="amqp://"
- GOPATH="$HOME/gopath"
- PATH="bin:$HOME/gopath/bin:$HOME/bin:$PATH"
- CHECKOUT_ROOT="$HOME/gopath/src/github.com/travis-ci/worker"
- GO15VENDOREXPERIMENT='1'
- REDIS_URL="redis://"
stages:
- name: test
if: (type = push OR type = pull_request) AND branch = master
before_cache:
- make clean
jobs:
include:
- stage: test
name: lint
script:
- make deps
- make lintall
- stage: test
name: linux
script:
- make deps
- GO111MODULE=on make build
- mkdir -p build/linux/amd64
- cp ${GOPATH%%:*}/bin/travis-worker build/linux/amd64
- make test-no-cover
- make test-cover
- make smoke
addons:
apt:
packages:
- rabbitmq-server
artifacts:
paths:
- ./build/linux/amd64/travis-worker
target_paths:
- travis-ci/worker/$TRAVIS_BUILD_NUMBER/$TRAVIS_JOB_NUMBER
- travis-ci/worker/$(git describe --always --dirty --tags)
- travis-ci/worker/$TRAVIS_BRANCH
- stage: test
name: crossbuild
script:
- go mod vendor
- GO111MODULE=on make build/darwin/amd64/travis-worker
addons:
artifacts:
paths:
- ./build/darwin/amd64/travis-worker
target_paths:
- travis-ci/worker/$TRAVIS_BUILD_NUMBER/$TRAVIS_JOB_NUMBER
- travis-ci/worker/$(git describe --always --dirty --tags)
- travis-ci/worker/$TRAVIS_BRANCH
- stage: test
name: docker
if: type != 'pull_request' && env(VAULT_PASS) is present && env(VAULT_USERNAME) is present
script:
- vault login --no-print -method=userpass username=$VAULT_USERNAME password=$VAULT_PASS
- vault kv get -field=secret gcp/gcr-sa-key > /tmp/gcr_key.json;
- gcloud -q auth activate-service-account --key-file /tmp/gcr_key.json;
- gcloud -q config set project ${GCE_PROJECT}
- gcloud auth configure-docker
- make docker-build
- make docker-push
addons:
snaps:
# google-cloud-sdk is available on focal
# - name: google-cloud-sdk
- name: vault
apt:
update: true
packages:
- docker-ce
- stage: test
name: http-job-test
script:
- GO111MODULE=on make build
- mkdir -p build/linux/amd64
- cp ${GOPATH%%:*}/bin/travis-worker build/linux/amd64
- make http-job-test
Build Config
{
"language": "go",
"os": [
"linux"
],
"dist": "focal",
"go": [
"1.22.x"
],
"git": {
"depth": 10
},
"branches": {
"only": [
"master"
]
},
"cache": {
"directories": [
"vendor",
"$HOME/.cache/go-build",
"$HOME/gopath/bin",
"$HOME/gopath/pkg/mod"
]
},
"services": [
"rabbitmq",
"docker",
"redis"
],
"env": {
"global": [
{
"AMQP_URI": "\"amqp://\""
},
{
"GOPATH": "\"$HOME/gopath\""
},
{
"PATH": "\"bin:$HOME/gopath/bin:$HOME/bin:$PATH\""
},
{
"CHECKOUT_ROOT": "\"$HOME/gopath/src/github.com/travis-ci/worker\""
},
{
"GO15VENDOREXPERIMENT": "'1'"
},
{
"REDIS_URL": "\"redis://\""
}
]
},
"stages": [
{
"name": "test",
"if": "(type = push OR type = pull_request) AND branch = master"
}
],
"before_cache": [
"make clean"
],
"jobs": {
"include": [
{
"stage": "test",
"name": "lint",
"script": [
"make deps",
"make lintall"
]
},
{
"stage": "test",
"name": "linux",
"script": [
"make deps",
"GO111MODULE=on make build",
"mkdir -p build/linux/amd64",
"cp ${GOPATH%%:*}/bin/travis-worker build/linux/amd64",
"make test-no-cover",
"make test-cover",
"make smoke"
],
"addons": {
"apt": {
"packages": [
"rabbitmq-server"
]
},
"artifacts": {
"paths": [
"./build/linux/amd64/travis-worker"
],
"target_paths": [
"travis-ci/worker/$TRAVIS_BUILD_NUMBER/$TRAVIS_JOB_NUMBER",
"travis-ci/worker/$(git describe --always --dirty --tags)",
"travis-ci/worker/$TRAVIS_BRANCH"
]
}
}
},
{
"stage": "test",
"name": "crossbuild",
"script": [
"go mod vendor",
"GO111MODULE=on make build/darwin/amd64/travis-worker"
],
"addons": {
"artifacts": {
"paths": [
"./build/darwin/amd64/travis-worker"
],
"target_paths": [
"travis-ci/worker/$TRAVIS_BUILD_NUMBER/$TRAVIS_JOB_NUMBER",
"travis-ci/worker/$(git describe --always --dirty --tags)",
"travis-ci/worker/$TRAVIS_BRANCH"
]
}
}
},
{
"stage": "test",
"name": "docker",
"if": "type != 'pull_request' && env(VAULT_PASS) is present && env(VAULT_USERNAME) is present",
"script": [
"vault login --no-print -method=userpass username=$VAULT_USERNAME password=$VAULT_PASS",
"vault kv get -field=secret gcp/gcr-sa-key > /tmp/gcr_key.json;",
"gcloud -q auth activate-service-account --key-file /tmp/gcr_key.json;",
"gcloud -q config set project ${GCE_PROJECT}",
"gcloud auth configure-docker",
"make docker-build",
"make docker-push"
],
"addons": {
"snaps": [
{
"name": "vault"
}
],
"apt": {
"update": true,
"packages": [
"docker-ce"
]
}
}
},
{
"stage": "test",
"name": "http-job-test",
"script": [
"GO111MODULE=on make build",
"mkdir -p build/linux/amd64",
"cp ${GOPATH%%:*}/bin/travis-worker build/linux/amd64",
"make http-job-test"
]
}
]
}
}