16
16
global :
17
17
- APP_ENV=prod
18
18
19
+ # TODO: replace check by [ ! $TRAVIS_TAG ] && [ $TRAVIS_REPO_SLUG = "api-platform/demo" ] && [ $TRAVIS_PULL_REQUEST = "false" ] when ready because we only want to deploy on master and from verified sources.
19
20
before_install :
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
21
+ - |
22
+ if [ $TRAVIS_PULL_REQUEST = "false" ]; then
23
+ curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | bash -s -- --version v2.9.1;
24
+ else
25
+ exit 0;
26
+ fi
23
27
24
28
before_script :
25
29
- sudo service mysql stop
@@ -29,7 +33,7 @@ before_script:
29
33
30
34
script :
31
35
- docker-compose up -d
32
- - linux-amd64/ helm lint api/helm/api/
36
+ - helm lint api/helm/api/ > /dev/null 2>&1
33
37
- sleep 20
34
38
- docker-compose exec php composer install -o -n
35
39
- docker-compose exec php bin/console security:check
@@ -49,6 +53,7 @@ script:
49
53
- curl -k https://localhost:8443
50
54
- curl -k https://localhost:8444
51
55
56
+ # TODO: Keep looking to https://github.com/kubernetes/kubernetes/pull/64034 tests in order to use "wait" with new implementation (to replace sleep 60)
52
57
after_success :
53
58
- curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
54
59
- chmod +x ./kubectl
@@ -57,21 +62,18 @@ after_success:
57
62
- gcloud auth activate-service-account ${TRAVIS_SERVICE_ACCOUNT} --key-file travis-service-account.json --project=${PROJECT_NAME}
58
63
- gcloud config set compute/zone europe-west3-c
59
64
- gcloud config set project ${PROJECT_NAME}
60
- - sudo mv linux-amd64/helm /usr/local/bin/helm
61
- - gcloud container clusters get-credentials api-platform-demo --zone europe-west3-c --project ${PROJECT_NAME}
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
64
- - helm dependencies update ./api/helm/api
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='*'
65
+ - gcloud container clusters get-credentials api-platform-demo --zone europe-west3-c --project ${PROJECT_NAME} > /dev/null 2>&1
66
+ - helm init --upgrade > /dev/null 2>&1
67
+ - kubectl delete namespace $(kubectl get namespaces -l app=api-demo -o jsonpath="{.items[0].metadata.name}" --ignore-not-found) --ignore-not-found > /dev/null 2>&1
68
+ - helm dependencies update ./api/helm/api > /dev/null 2>&1
69
+ - docker build --pull -t gcr.io/${PROJECT_NAME}/php -t gcr.io/${PROJECT_NAME}/php:latest api --target api_platform_php > /dev/null 2>&1
70
+ - docker build --pull -t gcr.io/${PROJECT_NAME}/nginx -t gcr.io/${PROJECT_NAME}/nginx:latest api --target api_platform_nginx > /dev/null 2>&1
71
+ - docker build --pull -t gcr.io/${PROJECT_NAME}/varnish -t gcr.io/${PROJECT_NAME}/varnish:latest api --target api_platform_varnish > /dev/null 2>&1
72
+ - gcloud docker -- push gcr.io/${PROJECT_NAME}/php:latest > /dev/null 2>&1
73
+ - gcloud docker -- push gcr.io/${PROJECT_NAME}/nginx:latest > /dev/null 2>&1
74
+ - gcloud docker -- push gcr.io/${PROJECT_NAME}/varnish:latest > /dev/null 2>&1
75
+ - 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='*' > /dev/null 2>&1
72
76
- sleep 60
73
- - kubectl get po --namespace=${TRAVIS_COMMIT}
74
- - kubectl --namespace=${TRAVIS_COMMIT} get pods -l app=api-php -o jsonpath="{.items[0].metadata.name}"
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'
76
- - kubectl label namespace ${TRAVIS_COMMIT} app=api-demo
77
- - gcloud auth revoke ${TRAVIS_SERVICE_ACCOUNT}
77
+ - 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' > /dev/null 2>&1
78
+ - kubectl label namespace ${TRAVIS_COMMIT} app=api-demo > /dev/null 2>&1
79
+ - gcloud auth revoke ${TRAVIS_SERVICE_ACCOUNT} > /dev/null 2>&1
0 commit comments