Files
quarkus/azure-pipelines.yml
2018-10-14 00:55:33 -05:00

85 lines
3.1 KiB
YAML

# Docker image
# Build a Docker image to deploy, run, or push to a container registry.
# Add steps that use Docker Compose, tag images, push to a registry, run an image, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/docker
jobs:
- job: Build
pool:
vmImage: 'Ubuntu 16.04'
variables:
imageName: 'shamrock:$(build.buildId)'
steps:
- script: docker run --rm --publish 5432:5432 --name build-postgres -e POSTGRES_USER=hibernate_orm_test -e POSTGRES_PASSWORD=hibernate_orm_test -e POSTGRES_DB=hibernate_orm_test -d postgres:10.5
displayName: 'start postgres'
- task: Maven@3
displayName: 'Maven Build'
inputs:
goals: 'install'
options: '-Dnative-image.docker-build -Dno-postgres -Dnative-image.xmx=4g'
- script: |
docker build -f docker/strict-example/Dockerfile -t jtgdocker1/shamrock-strict-example examples/strict/
docker login -u jtgdocker1 -p uEo-NTv-5YT-kk6
docker push jtgdocker1/shamrock-strict-example
docker logout
displayName: Publishing Strict Example Container Image
- job: OpenShift_Verify
dependsOn: Build
pool:
vmImage: 'Ubuntu 16.04'
steps:
- checkout: none
- script: |
curl https://github.com/openshift/origin/releases/download/v3.10.0/openshift-origin-client-tools-v3.10.0-dd10d17-linux-64bit.tar.gz --location --output oc-client.tgz
tar -xzvf oc-client.tgz
cd openshift-origin-client*
sudo echo '{"insecure-registries": ["172.30.0.0/16"]}' > daemon.json
sudo mv daemon.json /etc/docker
sudo cat /etc/docker/daemon.json
sudo systemctl daemon-reload
sudo systemctl restart docker
./oc cluster up
displayName: 'Launch OpenShift'
- script: |
function wait_for_pod() {
echo -n "Waiting for $1."
count=0;
VAL=""
while [ "$VAL" != "Running" ]
do
echo -n .
if [ $count -gt 20 ]; then
echo "Timed out waiting for $1!"
exit 1
fi
count=$((count+1))
sleep 2;
VAL=`./oc get pods | grep $1 | awk '{print $3}'`
done
echo "Ready!"
}
cd openshift-origin-client*
docker login -u jtgdocker1 -p uEo-NTv-5YT-kk6
docker pull jtgdocker1/shamrock-strict-example
docker pull centos/postgresql-10-centos7
docker logout
./oc create secret docker-registry jtgdocker1 --docker-username=jtgdocker1 --docker-password=uEo-NTv-5YT-kk6 --docker-email='bogus@bogus.com'
./oc secrets link default jtgdocker1 --for=pull
./oc new-app -e "POSTGRESQL_USER=hibernate_orm_test" -e "POSTGRESQL_PASSWORD=hibernate_orm_test" -e "POSTGRESQL_DATABASE=hibernate_orm_test" centos/postgresql-10-centos7
wait_for_pod postgres
./oc new-app -e "DATASOURCE_URL=jdbc:postgresql://postgresql-10-centos7/hibernate_orm_test" jtgdocker1/shamrock-strict-example
wait_for_pod shamrock
./oc status
VAL=`./oc get service shamrock-strict-example -o "custom-columns=IP:.spec.clusterIP" --no-headers=true`
VAL2=`curl -v http://$VAL:8080/jpa/testjpaeminjection`
test "$VAL2" = "OK"
displayName: 'Deploy and Test'