pomerium/.travis.yml
2020-03-05 21:04:59 -05:00

130 lines
4.9 KiB
YAML

stages:
- test
- "Docker Test Build"
- name: "Docker Build and Publish"
if: fork = false AND type = push
language: go
go:
- 1.x
- tip
cache:
directories:
- $HOME/.cache/go-build
- $HOME/gopath/pkg/mod
before_script:
- curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
- chmod +x ./cc-test-reporter
- ./cc-test-reporter before-build
script:
- env GOPROXY=https://proxy.golang.org GO111MODULE=on make all
- env GO111MODULE=on make cover
- env GO111MODULE=on make release
- env GOPROXY=https://proxy.golang.org GO111MODULE=on go test ./... -coverprofile c.out
after_success:
- bash <(curl -s https://codecov.io/bash)
- ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
deploy:
provider: releases
api_key:
secure: LhWnZHIilCFItgLJUfWUvbJSLFLpzlANj80Ji8y/MnzHGfnn5baYQpYA6eUnOkO6oXU1Uca+KLEQjDa4ySg6++B+5+jkmkWS4PWtj084dgXcKVIrBOt0CX46z8212Fii4WxGKY+Cukw3HejGq5XZmExxcAWbAGDklGedOvZWQImId62/nWjAJc5GLbXgz++i+67d7Uqfcd2wqZfWXsy8OIAG6VnjEP7spUALgaDt4HJaHZU4M9yDxkLX+3eKMuEl5DAJplmEsyDz1xYTcuYRQ7kFv3krXWyb5q9YQhGi8hwv7O93Q1iKMS2lk1rq9TTsr4AlW8lTrms7nvhKNWQWfdGmB2TEyBL/yZ3oaVO45oJoXhd0ff0ufa4VI05o+4WAEeYMkyFEnPxzbRZzPmz28zv9VLWuhS0qav9OnJgBVjFPhCrCYVyCZ6HP/alhrHjepr9hM5DLKwSzNkXWWMsJ4sraRFXQvAXTUbOE3qaeM3WYZ0TXwMNCfwGqE9tx6lXPZNirXZ6UH3qa5CGGyE3S73wUOo6Wo1yG7yBpuGHs485p+QJK+j3dhsJi+PAr4KShUhT7VvLNgidRkeaLGUCcrVf4J+UMCwWSoh5QGEy2lj1Ur4D8+dzXI9BOhL/EvtB3fozzycJ7ZJHLkPfFGnKfY83Q7A3oZ5MXDaWXBNSzTp4=
on:
tags: true
file:
- dist/pomerium-darwin-amd64
- dist/pomerium-darwin-amd64.md5
- dist/pomerium-darwin-amd64.sha256
- dist/pomerium-linux-amd64
- dist/pomerium-linux-amd64.md5
- dist/pomerium-linux-amd64.sha256
- dist/pomerium-windows-amd64
- dist/pomerium-windows-amd64.md5
- dist/pomerium-windows-amd64.sha256
skip_cleanup: true
docker_setup: &docker_setup
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
- sudo apt-get update
- sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
docker_login: &docker_login
- echo ${DOCKER_PASSWORD} | docker login -u ${DOCKER_USERNAME} --password-stdin
matrix:
allow_failures:
- go: tip
fast_finish: true
include:
- name: "Test Build amd64"
stage: "Docker Test Build"
install: *docker_setup
go: 1.x
script:
- .travis/docker_build.sh ${TRAVIS_REPO_SLUG}:${TRAVIS_COMMIT} Dockerfile
- name: "Build Master amd64"
stage: "Docker Build and Publish"
if: branch = master
install: *docker_setup
before_script: *docker_login
go: 1.x
script:
- .travis/docker_build.sh ${TRAVIS_REPO_SLUG}:master Dockerfile
- docker push ${TRAVIS_REPO_SLUG}
- name: "Build Master arm64v8"
if: branch = master
install: *docker_setup
before_script: *docker_login
go: 1.x
script:
- .travis/docker_build.sh ${TRAVIS_REPO_SLUG}:arm64v8-master Dockerfile.arm64v8
- docker push ${TRAVIS_REPO_SLUG}
- name: "Build Tag amd64"
if: tag =~ /^v([0-9.]+)$/
install: *docker_setup
before_script: *docker_login
go: 1.x
script:
- .travis/docker_build.sh ${TRAVIS_REPO_SLUG}:${TRAVIS_TAG} Dockerfile
- docker tag ${TRAVIS_REPO_SLUG}:${TRAVIS_TAG} ${TRAVIS_REPO_SLUG}:latest
- docker tag ${TRAVIS_REPO_SLUG}:${TRAVIS_TAG} ${TRAVIS_REPO_SLUG}:amd64-latest
- docker tag ${TRAVIS_REPO_SLUG}:${TRAVIS_TAG} ${TRAVIS_REPO_SLUG}:amd64-${TRAVIS_TAG}
- docker push ${TRAVIS_REPO_SLUG}
- name: "Build Tag arm64v8"
if: tag =~ /^v([0-9.]+)$/
install: *docker_setup
before_script: *docker_login
go: 1.x
script:
- .travis/docker_build.sh ${TRAVIS_REPO_SLUG}:arm64v8-${TRAVIS_TAG} Dockerfile.arm64v8
- docker tag ${TRAVIS_REPO_SLUG}:arm64v8-${TRAVIS_TAG} ${TRAVIS_REPO_SLUG}:arm64v8-latest
- docker push ${TRAVIS_REPO_SLUG}
- name: "Build Tag arm32v7"
if: tag =~ /^v([0-9.]+)$/
install: *docker_setup
before_script: *docker_login
go: 1.x
script:
- .travis/docker_build.sh ${TRAVIS_REPO_SLUG}:arm32v7-${TRAVIS_TAG} Dockerfile.arm32v7
- docker tag ${TRAVIS_REPO_SLUG}:arm32v7-${TRAVIS_TAG} ${TRAVIS_REPO_SLUG}:arm32v7-latest
- docker push ${TRAVIS_REPO_SLUG}
- name: "Build Tag arm32v6"
if: tag =~ /^v([0-9.]+)$/
install: *docker_setup
before_script: *docker_login
go: 1.x
script:
- .travis/docker_build.sh ${TRAVIS_REPO_SLUG}:arm32v6-${TRAVIS_TAG} Dockerfile.arm32v6
- docker tag ${TRAVIS_REPO_SLUG}:arm32v6-${TRAVIS_TAG} ${TRAVIS_REPO_SLUG}:arm32v6-latest
- docker push ${TRAVIS_REPO_SLUG}