diff --git a/.buildkite/pipeline.yaml b/.buildkite/pipeline.yaml index 1028017..2503ee9 100644 --- a/.buildkite/pipeline.yaml +++ b/.buildkite/pipeline.yaml @@ -4,7 +4,14 @@ steps: queue: default os: linux commands: - - buildah bud --format=docker --layers -t embarkstudios/wireguard-ui:latest -f Dockerfile . - - buildah bud --format=docker --layers -t embarkstudios/wireguard-ui:debug -f Dockerfile.debug . + - ./build.sh - buildah push --authfile /root/.dockerhub/config.json embarkstudios/wireguard-ui:latest + - tar czf wireguard-ui-linux-amd64-latest.tar.gz ./wireguard-ui + - buildkite-agent artifact upload wireguard-ui-linux-amd64-latest.tar.gz + - name: Build debug container image + agents: + queue: default + os: linux + commands: + - buildah bud --format=docker --layers -t embarkstudios/wireguard-ui:debug -f Dockerfile.debug . - buildah push --authfile /root/.dockerhub/config.json embarkstudios/wireguard-ui:debug diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..197a37a --- /dev/null +++ b/build.sh @@ -0,0 +1,26 @@ +#!/bin/bash +set -ex + +npm=$(buildah from node:12) +npm_run="buildah run --volume=${PWD}/ui:/ui $npm" +buildah config --workingdir=/ui $npm +$npm_run npm install +$npm_run npm run build +buildah umount $npm + +go=$(buildah from golang:1.13.1) +go_run="buildah run --volume=${PWD}:/wg --volume=${HOME}/.cache:/.cache ${go}" + +buildah config --workingdir=/wg $go +$go_run go get github.com/go-bindata/go-bindata/... +$go_run go get github.com/elazarl/go-bindata-assetfs/... +$go_run go mod download +$go_run go-bindata-assetfs -prefix ui/dist ui/dist +$go_run go build . +buildah umount $go + +dist=$(buildah from --format=docker gcr.io/distroless/base) +buildah config --entrypoint=/wireguard-ui $dist +buildah copy $dist wireguard-ui / +buildah commit $dist embarkstudios/wireguard-ui:latest +buildah umount $dist diff --git a/go.mod b/go.mod index d8c8e7a..1885753 100644 --- a/go.mod +++ b/go.mod @@ -6,6 +6,7 @@ require ( github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 // indirect github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d // indirect github.com/elazarl/go-bindata-assetfs v1.0.0 + github.com/go-bindata/go-bindata v3.1.2+incompatible // indirect github.com/google/nftables v0.0.0-20190906062827-5d14089d2edc github.com/julienschmidt/httprouter v1.3.0 github.com/sirupsen/logrus v1.4.2 diff --git a/go.sum b/go.sum index dcb767b..5a7c989 100644 --- a/go.sum +++ b/go.sum @@ -7,6 +7,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/elazarl/go-bindata-assetfs v1.0.0 h1:G/bYguwHIzWq9ZoyUQqrjTmJbbYn3j3CKKpKinvZLFk= github.com/elazarl/go-bindata-assetfs v1.0.0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4= +github.com/go-bindata/go-bindata v3.1.2+incompatible h1:5vjJMVhowQdPzjE1LdxyFF7YFTXg5IgGVW4gBr5IbvE= +github.com/go-bindata/go-bindata v3.1.2+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=