|
16 | 16 | global:
|
17 | 17 | - APP_ENV=prod
|
18 | 18 |
|
19 |
| -# - if [ "TRAVIS_PULL_REQUEST" != "false" ]; then exit 0; fi |
20 | 19 | before_install:
|
21 |
| - - curl -O https://storage.googleapis.com/kubernetes-helm/helm-v2.7.2-linux-amd64.tar.gz |
22 |
| - - tar -zxvf helm-v2.7.2-linux-amd64.tar.gz |
| 20 | + - if [ "TRAVIS_PULL_REQUEST" != "false" ]; then exit 0; fi |
| 21 | + - https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | bash -s -- --version v2.9.1 |
| 22 | + - tar -zxvf helm-v2.9.1-linux-amd64.tar.gz |
23 | 23 |
|
24 | 24 | before_script:
|
25 | 25 | - sudo service mysql stop
|
@@ -49,34 +49,29 @@ script:
|
49 | 49 | - curl -k https://localhost:8443
|
50 | 50 | - curl -k https://localhost:8444
|
51 | 51 |
|
52 |
| -# Todo: remove ingress output |
53 | 52 | after_success:
|
54 | 53 | - curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
|
55 | 54 | - chmod +x ./kubectl
|
56 | 55 | - sudo mv ./kubectl /usr/local/bin/kubectl
|
57 |
| - - echo -n ${travis} | base64 -d > travis-service-account.json |
58 |
| - - gcloud auth activate-service-account [email protected] --key-file travis-service-account.json --project=api-platform-demo-209807 |
| 56 | + - echo -n ${TRAVIS} | base64 -d > travis-service-account.json |
| 57 | + - gcloud auth activate-service-account ${TRAVIS_SERVICE_ACCOUNT} --key-file travis-service-account.json --project=${PROJECT_NAME} |
59 | 58 | - gcloud config set compute/zone europe-west3-c
|
60 |
| - - gcloud config set project api-platform-demo-209807 |
61 |
| - - tar -zxvf helm-v2.7.2-linux-amd64.tar.gz |
62 |
| - - rm -rf helm-v2.7.2-linux-amd64.tar.gz |
| 59 | + - gcloud config set project ${PROJECT_NAME} |
63 | 60 | - sudo mv linux-amd64/helm /usr/local/bin/helm
|
64 |
| - - gcloud container clusters get-credentials api-platform-demo --zone europe-west3-c --project ${projectName} |
| 61 | + - gcloud container clusters get-credentials api-platform-demo --zone europe-west3-c --project ${PROJECT_NAME} |
65 | 62 | - helm init
|
| 63 | + - kubectl delete namespace $(kubectl get namespaces -l app=api-demo -o jsonpath="{.items[0].metadata.name}" --ignore-not-found) --ignore-not-found |
66 | 64 | - helm dependencies update ./api/helm/api
|
67 |
| - - docker build --pull -t gcr.io/api-platform-demo-209807/php -t gcr.io/api-platform-demo-209807/php:latest api --target api_platform_php |
68 |
| - - docker build --pull -t gcr.io/api-platform-demo-209807/nginx -t gcr.io/api-platform-demo-209807/nginx:latest api --target api_platform_nginx |
69 |
| - - docker build --pull -t gcr.io/api-platform-demo-209807/varnish -t gcr.io/api-platform-demo-209807/varnish:latest api --target api_platform_varnish |
70 |
| - - gcloud docker -- push gcr.io/api-platform-demo-209807/php |
71 |
| - - gcloud docker -- push gcr.io/api-platform-demo-209807/nginx |
72 |
| - - gcloud docker -- push gcr.io/api-platform-demo-209807/varnish |
73 |
| - - helm install --wait --namespace=${TRAVIS_COMMIT} ./api/helm/api --set php.repository=gcr.io/api-platform-demo-209807/php --set nginx.repository=gcr.io/api-platform-demo-209807/nginx --set secret=${APP_SECRET} --set postgresUser=${DATABASE_USER},postgresPassword="${DATABASE_PASSWORD}",postgresDatabase=${DATABASE_NAME} --set postgresql.persistence.enabled=true --set corsAllowOrigin='*' |
| 65 | + - docker build --pull -t gcr.io/${PROJECT_NAME}/php -t gcr.io/${PROJECT_NAME}/php:latest api --target api_platform_php |
| 66 | + - docker build --pull -t gcr.io/${PROJECT_NAME}/nginx -t gcr.io/${PROJECT_NAME}/nginx:latest api --target api_platform_nginx |
| 67 | + - docker build --pull -t gcr.io/${PROJECT_NAME}/varnish -t gcr.io/${PROJECT_NAME}/varnish:latest api --target api_platform_varnish |
| 68 | + - gcloud docker -- push gcr.io/${PROJECT_NAME}/php:latest |
| 69 | + - gcloud docker -- push gcr.io/${PROJECT_NAME}/nginx:latest |
| 70 | + - gcloud docker -- push gcr.io/${PROJECT_NAME}/varnish:latest |
| 71 | + - helm install --wait --namespace=${TRAVIS_COMMIT} ./api/helm/api --set php.repository=gcr.io/${PROJECT_NAME}/php --set nginx.repository=gcr.io/${PROJECT_NAME}/nginx --set secret=${APP_SECRET} --set postgresUser=${DATABASE_USER},postgresPassword="${DATABASE_PASSWORD}",postgresDatabase=${DATABASE_NAME} --set postgresql.persistence.enabled=true --set corsAllowOrigin='*' |
74 | 72 | - sleep 60
|
75 | 73 | - kubectl get po --namespace=${TRAVIS_COMMIT}
|
76 | 74 | - kubectl --namespace=${TRAVIS_COMMIT} get pods -l app=api-php -o jsonpath="{.items[0].metadata.name}"
|
77 | 75 | - kubectl exec -it $(kubectl --namespace=${TRAVIS_COMMIT} get pods -l app=api-php -o jsonpath="{.items[0].metadata.name}") --namespace=${TRAVIS_COMMIT} -- ash -c 'export APP_ENV=dev && composer install -n && bin/console d:s:u --force --env=dev && bin/console hautelook:fixtures:load -n && APP_ENV=prod composer --no-dev install --classmap-authoritative && bin/console d:s:u --env=prod'
|
78 |
| - - kubectl delete namespace $(kubectl get namespaces -l app=api-demo -o jsonpath="{.items[0].metadata.name}" --ignore-not-found) --ignore-not-found |
79 | 76 | - kubectl label namespace ${TRAVIS_COMMIT} app=api-demo
|
80 |
| - - kubectl --namespace $(kubectl get namespaces -l app=api-demo -o jsonpath="{.items[0].metadata.name}") get ingress -o jsonpath="{.items[0].status.loadBalancer.ingress[0].ip}" |
81 |
| - - rm travis-service-account.json |
82 |
| - - gcloud auth revoke [email protected] |
| 77 | + - gcloud auth revoke ${TRAVIS_SERVICE_ACCOUNT} |
0 commit comments