95 lines
3.1 KiB
YAML
95 lines
3.1 KiB
YAML
version: "2017-09-20"
|
|
pipeline:
|
|
- id: build-postgres-operator
|
|
type: script
|
|
env:
|
|
GOPATH: /root/go
|
|
OPERATOR_TOP_DIR: /root/go/src/github.com/zalando
|
|
commands:
|
|
- desc: 'Update'
|
|
cmd: |
|
|
apt-get update
|
|
- desc: 'Install required build software'
|
|
cmd: |
|
|
apt-get install -y make git apt-transport-https ca-certificates curl build-essential python3 python3-pip
|
|
- desc: 'Install go'
|
|
cmd: |
|
|
cd /tmp
|
|
wget -q https://storage.googleapis.com/golang/go1.12.linux-amd64.tar.gz -O go.tar.gz
|
|
tar -xf go.tar.gz
|
|
mv go /usr/local
|
|
ln -s /usr/local/go/bin/go /usr/bin/go
|
|
go version
|
|
- desc: 'Symlink sources into the GOPATH'
|
|
cmd: |
|
|
mkdir -p $OPERATOR_TOP_DIR
|
|
ln -s $(pwd) $OPERATOR_TOP_DIR/postgres-operator
|
|
- desc: 'Build docker image'
|
|
cmd: |
|
|
export PATH=$PATH:$HOME/go/bin
|
|
IS_PR_BUILD=${CDP_PULL_REQUEST_NUMBER+"true"}
|
|
if [[ ${CDP_TARGET_BRANCH} == "master" && ${IS_PR_BUILD} != "true" ]]
|
|
then
|
|
IMAGE=registry-write.opensource.zalan.do/acid/postgres-operator
|
|
else
|
|
IMAGE=registry-write.opensource.zalan.do/acid/postgres-operator-test
|
|
fi
|
|
export IMAGE
|
|
make tools deps docker
|
|
- desc: 'Run unit tests'
|
|
cmd: |
|
|
export PATH=$PATH:$HOME/go/bin
|
|
cd $OPERATOR_TOP_DIR/postgres-operator
|
|
go test ./...
|
|
- desc: 'Run e2e tests'
|
|
cmd: |
|
|
cd $OPERATOR_TOP_DIR/postgres-operator
|
|
make e2e
|
|
- desc: 'Push docker image'
|
|
cmd: |
|
|
export PATH=$PATH:$HOME/go/bin
|
|
IS_PR_BUILD=${CDP_PULL_REQUEST_NUMBER+"true"}
|
|
if [[ ${CDP_TARGET_BRANCH} == "master" && ${IS_PR_BUILD} != "true" ]]
|
|
then
|
|
IMAGE=registry-write.opensource.zalan.do/acid/postgres-operator
|
|
else
|
|
IMAGE=registry-write.opensource.zalan.do/acid/postgres-operator-test
|
|
fi
|
|
export IMAGE
|
|
make push
|
|
|
|
- id: build-operator-ui
|
|
type: script
|
|
|
|
commands:
|
|
- desc: 'Prepare environment'
|
|
cmd: |
|
|
apt-get update
|
|
apt-get install -y build-essential
|
|
|
|
- desc: 'Compile JavaScript app'
|
|
cmd: |
|
|
cd ui
|
|
make appjs
|
|
|
|
- desc: 'Build and push Docker image'
|
|
cmd: |
|
|
cd ui
|
|
image_base='registry-write.opensource.zalan.do/acid/postgres-operator-ui'
|
|
if [[ "${CDP_TARGET_BRANCH}" == 'master' && -z "${CDP_PULL_REQUEST_NUMBER}" ]]
|
|
then
|
|
image="${image_base}"
|
|
else
|
|
image="${image_base}-test"
|
|
fi
|
|
image_with_tag="${image}:c${CDP_BUILD_VERSION}"
|
|
|
|
if docker pull "${image}"
|
|
then
|
|
docker build --cache-from="${image}" -t "${image_with_tag}" .
|
|
else
|
|
docker build -t "${image_with_tag}" .
|
|
fi
|
|
|
|
docker push "${image_with_tag}"
|