-
Notifications
You must be signed in to change notification settings - Fork 85
/
.travis.yml
123 lines (101 loc) · 2.69 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
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