-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy path.travis.yml
59 lines (53 loc) · 2.77 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
---
sudo: required
sevices:
- docker
language: python
python:
- '2.7'
stages:
- lint
- test
env:
- APB_NAME=mssql-apb ANSIBLE_ROLES_PATH=$ANSIBLE_ROLES_PATH:$PWD/roles OPENSHIFT_VERSION=v3.9
install:
- sudo apt-get update -qq
jobs:
include:
- stage: lint
python: '2.7'
script:
- sudo apt-get install git
- pip install --pre ansible apb yamllint
- git clone https://github.com/ansible/ansible-kubernetes-modules.git $PWD/roles/ansible.kubernetes-modules
- git clone https://github.com/ansibleplaybookbundle/ansible-asb-modules.git $PWD/roles/ansibleplaybookbundle.asb-modules
# Verify all playbooks have valid syntax
- |
for PLAYBOOK in playbooks/{provision,deprovision,test}.yml
do ansible-playbook ${PLAYBOOK} --syntax-check
done
# Verify apb.yml file is valid YAML
- yamllint apb.yml
- stage: test
script:
- sudo apt-get install jq
- sudo sed -i "s/\DOCKER_OPTS=\"/DOCKER_OPTS=\"--insecure-registry=172.30.0.0\/16 /g" /etc/default/docker
- sudo service docker restart
- docker build -t ${APB_NAME} .
- export B64_SPEC=`base64 apb.yml | tr -d '\n'`
- export APB_LABEL=`docker inspect --format='{{json .Config.Labels}}' $(docker images -q | head -n 1) | jq '."com.redhat.apb.spec"' | cut -d'"' -f2 | tr -d '\n'`
- if [ "${B64_SPEC}" != "${APB_LABEL}" ]; then { echo "APB Spec Label doesn't match, run - apb prepare"; exit -1; }; fi;
- sudo docker cp $(docker create docker.io/openshift/origin:${OPENSHIFT_VERSION}):/bin/oc /usr/local/bin/oc
- oc cluster up --version=${OPENSHIFT_VERSION}
- export OC_USER=`oc whoami` OC_PASS=`oc whoami -t`
- oc login -u system:admin
- oc rollout status -w dc/docker-registry -n default || oc rollout retry dc/docker-registry -n default && oc rollout status -w dc/docker-registry -n default
- export REGISTRY=`oc get svc/docker-registry -n default --template '{{.spec.clusterIP}}:{{index .spec.ports 0 "port"}}'`
- oc login --token=${OC_PASS}
- oc new-project ${APB_NAME}
- docker login -u ${OC_USER} -p ${OC_PASS} ${REGISTRY}
- docker tag "${APB_NAME}" "${REGISTRY}/${APB_NAME}/${APB_NAME}"
- docker push "${REGISTRY}/${APB_NAME}/${APB_NAME}"
- oc create sa apb
- oc adm policy add-role-to-user admin -z apb
- oc run "${APB_NAME}-test" -it --restart='Never' --image "${REGISTRY}/${APB_NAME}/${APB_NAME}" --env "OPENSHIFT_TOKEN=${OC_PASS}" --env "OPENSHIFT_TARGET=https://kubernetes.default.svc" --env "POD_NAME=${APB_NAME}-test" --env "POD_NAMESPACE=${APB_NAME}" --overrides='{"apiVersion":"v1","spec":{"serviceAccountName":"apb"}}' -- test -e namespace=${APB_NAME} -e MSSQL_MEMORY_REQUEST=1 -v