mirror of
https://github.com/pomerium/pomerium.git
synced 2025-07-31 15:29:48 +02:00
Move docker image builds to Travis CI (#288)
- Faster - Multi-Arch works correctly with Docker CI 19.03
This commit is contained in:
parent
247cf4781d
commit
e25b65d4b8
4 changed files with 85 additions and 7 deletions
79
.travis.yml
79
.travis.yml
|
@ -1,3 +1,9 @@
|
|||
stages:
|
||||
- test
|
||||
- "Docker Test Build"
|
||||
- name: "Docker Build and Publish"
|
||||
if: fork = false AND pull_request = false
|
||||
|
||||
language: go
|
||||
go:
|
||||
- 1.x
|
||||
|
@ -42,3 +48,76 @@ deploy:
|
|||
- 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
|
||||
|
||||
jobs:
|
||||
include:
|
||||
- name: "Test Build amd64"
|
||||
stage: "Docker Test Build"
|
||||
install: *docker_setup
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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}
|
||||
|
|
6
.travis/docker_build.sh
Executable file
6
.travis/docker_build.sh
Executable file
|
@ -0,0 +1,6 @@
|
|||
#!/bin/sh -e
|
||||
|
||||
FULL_IMAGE_NAME=${1:-pomerium/pomerium}
|
||||
DOCKERFILE=${2:-Dockerfile}
|
||||
|
||||
docker build -t "${FULL_IMAGE_NAME}" -f "${DOCKERFILE}" .
|
|
@ -1,4 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
apt-get update
|
||||
apt-get install -y curl binfmt-support
|
|
@ -1,3 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
docker run --rm --privileged multiarch/qemu-user-static --reset
|
Loading…
Add table
Add a link
Reference in a new issue