Skip to content

Commit 4956a6b

Browse files
committed
WIP
1 parent 0db4047 commit 4956a6b

File tree

3 files changed

+96
-8
lines changed

3 files changed

+96
-8
lines changed

.env

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
CONTAINER_REGISTRY_BASE=quay.io/api-platform
1+
CONTAINER_REGISTRY_BASE=gcr.io/api-platform-demo

.travis.yml

Lines changed: 94 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,80 @@
1+
language: php
2+
3+
dist: trusty
14
sudo: required
25

6+
# TODO: Verify this upgrade still works.
7+
php:
8+
- 7.2
9+
10+
# Specify which branches to build using a safelist:
11+
#branches:
12+
# only:
13+
#- master
14+
#Allowing specific branch to deploy for example for test purpose:
15+
# - /^deploy-.*$/
16+
17+
# clone repositories to a depth of 1 commit
18+
# Warning: Travis CI won’t build commits that are in the queue when pushing a new commit and depth set to 1.
19+
git:
20+
depth: 1
21+
# Avoiding log file size limits.
22+
# quiet: true
23+
324
services:
425
- docker
26+
- redis-server
527

628
cache:
729
yarn: true
830
directories:
931
- admin/node_modules
1032
- client/node_modules
33+
- api/vendor
34+
35+
# To create secure env var, first login to travis with your github account running:
36+
# sudo travis login
37+
# Then run the following commmand:
38+
# travis encrypt 'DATABASE_PASSWORD=your_database_password'
39+
env:
40+
global:
41+
- APP_ENV=prod
42+
# DATABASE_NAME
43+
- secure: "nk/EmbFj495TnwEs96cPRHsFxShd64rpMAPsopwBjjMdi4vZpbIFS3Lu2CRdonCLskfOd0IjcybrsE0VZ+9nfo3GWSdZoEmp2OjbboF/qvzP0hRsQgA1fk7c/06O4Rb47JcCOHtOuxUe5Owxc11zlI9rcaMRN680acneoWQTB9cRihcjVi4ZyymMtjKGPtIBbBlsvwmqK2cQAv34JL/sG/umu7/3cbTOpG9BLbXI1p3svXlVqbTJpz5B5SWd/z2RZ7G+yD6bsN83GcKe/rBDYl0BTOKX5DprH3kFhWR5l6ZzGYD882V6XtR+J2+TtQKZPvvvg2hdk+012ldYDBmR4GBW3bWMWIuCAKkBxiVv1EtKttxxm7ZKdY1Jk8+lywBINXWDimZzLf6MTWbmWYRKCe40YxleGYsnbN++8SGd0VTyFkfFeKkHoL04aQMypIvi9JxBkvkNYrPWtiNSvjefLtCYkQCqm9/+Y7wcZ4H2hR/6v/wbhUU7fzTBKmKBi55Pu8v1qSaLDvihsCwWHPRNvFaZ/fpNf384PTQX6Mrwp0iP8Wuqljr0txMHawmJVs+oAjcuByOncHzpXWptnHfoTSXODQJngfduzBus/TZUWhGrTRJobElQjtmstWVo8U9JOxg1SWEhUemV/8Frsj+cLF84WcTlBwH1xmkJh9EI6qU="
44+
# DATABASE_USER
45+
- secure: "L1AAQyj58CBxJjLxDQbk4GGxR1hq6R0lPDKsqA5NFrbt/P5HT4KIE7GonUufC5V+3OTE6SPcDchlrQoTYgaizA75XPsn0thhsdJRWGJr+WXWwpt2wGyq5SgVjUxCJYbhO1k9Ay2COFKg6Qiat6PegdNA2qLpzvwZ08m8fCKw6VF7iiQbc3I5tkDnC80MsEofQ4XiJpY6DWgYourHoTo308DKQ/mpqy8d/D2jxY7V5hPQLBkgzkZgppMamnhHd9SXeP6v4htmXbl4GPFscP4jfT7M2mLctsi9FEFAYaM8fayiBD2sUz05m3rLErg4LgkGznzRI+6R7Ngd/0ausZCFOkAJ7lJp87NzowLLzCSnK3o0xWmZxC8M02S3A3g8w/k6cepqXWDE13idfE4fBp4k3CIGgywmjXSagBEW7xdRPDqTvDf+/rKOqdEX/zOc/6PPBVDdY1Wuaa4ZmiB1RKQilQn7N7wa9tFwdBZvPrj/jNScIcFAz9IyYxvDJUsQ1ERQ+KKHAlBAdRP5OZIYzkRFimpyE5WFzi3o2rcqKZ5T1xtsaWqDNk1gOwJ18wP0FkVBLGnNryT34ivf382dgEJvtn2IdHtcRs64lNw4DcHXVOYxbEtzIistJNTSQoNP1YQUxheTQVztKnCjmfvnG6PpINgyaUKARNT2BMdiazHu99w=" - DATABASE_PSWSD=dbPassword
46+
# APP_SECRET
47+
- secure: "fX9Um/12G/zNAHCYaztnk6EQZOwf1xI5ESpSkshZ2b4LQ8/s2sV64nIcjD/yRQbZ3GxBsNKdz2VenPgizliNyPTuGheOe05bNRIZKOODOjlLEsqvwjzvXNIPrWoi5xeA2ioCwPwq38QXu0DIvLsKy72YVz9pR2oi9PK5GjsRKmKLX6DOEWehfGrp1itD1mwl91mMK0gCiahspKzww5ryOBf5J0YemWoCc4ByzSGYhjL/2B/kJOS9j6Ua9UxIIPK9Qf4M+wxQct46HqY0aVk0NogAhn38ClV+9S+cMCbiUs3DCHosx/zV3wlZj4vnCCEScnbYdB/ujyCkPv8+oK+vPomOJsE94cd+4/BQYNDJ6N2ZfG23Zs8byK6PmPQqrjSKYyta1XyrvNr23k9Cn6T1h/T+WTnaB5doLZr+j91EmLuwGRxh11zolYRjKcPSZaKtGSGuFBeJtJjDTu5dvkJx8tJEWUZumjIeUKPPkbF8USJgy6/0ls1w4N08qXYAFTQAinJkF/b4Jv2HefIV1ZRN7qEQk65NNix/7NVlhdJc0rrwgcrykBz2jxvzG1SQNBMYpg+eZIB0V7BSZz+taKLjO0ZCUQOx8vzBP96PtRnJVhIPGquyLw585qE0RsLJjnFs26q4pobnhU01NdWa9SXFAHvDRIs1qi6/FmE9EPySLyk="
48+
# DATABASE_PASSWORD
49+
- secure: "NW4pCoTBNO1hmvecBdEUO9Ry59oFG+dGsAiLMv7bUJ73S5HAhZwQSxWxcpMHM6m3J8bcm+9Y1AC2IKxebrHMR+bghm1SRXnor+Bgi7MjRkbe/6xOX9VmwtaNMT0d1O0d71o+xwtqygwZMW+cz0DXTd4gj5MKc0N77pSlyZcdT78Wm+KtyU8WHVihsfu7YGc0vE5BO1g51reRh1DUXfEaOuVInqLSifowtICs98em+HhJVNqYRBXqyoZwFvCWOplDKhdnopfyiB8A+vf4jP1nyCrg4UeLAxw8jEWIOcqeVPKRiUMLcTTHKO2dBABVky8bLo/PyQkH9ACme9DN+aRGmfUulrRkAqhsXKLRbxlECWc+C5gKImd+D5DXTTc3xhryUjmQ1a/UyuvdO8Q1UWhwyUN3KdefqwB5dMspEvPPpZg0+uuX2tfSdfPX0muSUOrOiqxI/S34C2PY5+TM3bBVQoNZALtQF7PLc7i6cL78t2EXyB7isUgiL7Ax7JX2XupyNndzo57KBRY+HygfmUUoY57VLCO8CyFft0TAN6YpCDS74wggBh8veXDvYAzvFmejS9HxQoJ6W5ahl7yH1tyeSHC82hfaBG7E0bmxjo6C9NRmuVa/7bnyDd0MhWKkNPNuckx0Odc8tclqg5BsUzKdP8otIEZEAbHFJema1UMAxoI="
50+
51+
# Todo: add this at the beginning of the before_install script: - if [ "TRAVIS_PULL_REQUEST" != "false" ]; then exit 0; fi
52+
before_install:
53+
- curl -o- -L https://yarnpkg.com/install.sh | bash
54+
- yes '' | pecl install apcu redis
55+
- echo "extension = redis.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
56+
- echo "extension = apcu.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
57+
58+
install:
59+
- sh -c "cd api && composer install --prefer-dist --no-progress --no-suggest --no-interaction --no-scripts"
60+
- bin/console doctrine:database:create --env=prod
61+
- bin/console doctrine:schema:update --env=prod --force
62+
- bin/console hautelook:fixtures:load
1163

1264
before_script:
13-
- sudo service mysql stop
14-
- sudo service postgresql stop
15-
- wget https://kubernetes-helm.storage.googleapis.com/helm-v2.6.1-linux-amd64.tar.gz
16-
- tar xzf helm-v2.6.1-linux-amd64.tar.gz
1765
- npm install -g react-scripts
1866
- while sudo lsof -Pi :5432 -sTCP:LISTEN -t; do sleep 1; done
67+
- sudo service mysql stop
68+
- sudo service postgresql stop
69+
- curl -O https://storage.googleapis.com/kubernetes-helm/helm-v2.7.2-linux-amd64.tar.gz
70+
- tar -zxvf helm-v2.7.2-linux-amd64.tar.gz
1971

2072
script:
2173
- docker-compose up -d
2274
- linux-amd64/helm lint api/helm/api/
2375
- sleep 20
24-
- sh -c "cd admin && PUBLIC_URL="/api-demo-admin-test" yarn install && yarn build"
25-
- sh -c "cd client && PUBLIC_URL="/api-demo-client-test" yarn install && yarn build"
76+
- sh -c "cd admin && PUBLIC_URL="/api-demo-admin-test" yarn install --pure-lockfile && yarn build"
77+
- sh -c "cd client && PUBLIC_URL="/api-demo-client-test" yarn install --pure-lockfile && yarn build"
2678
- docker-compose exec php composer install -o -n
2779
- docker-compose exec php bin/console security:check
2880
- docker-compose exec php bin/console doctrine:schema:validate --skip-sync
@@ -40,3 +92,39 @@ script:
4092
- curl -k https://localhost:444
4193
- curl -k https://localhost:8443
4294
- curl -k https://localhost:8444
95+
96+
# Todo: Verify remote repository at the beginning of after_success step.
97+
after_success:
98+
- curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
99+
- chmod +x ./kubectl
100+
- sudo mv ./kubectl /usr/local/bin/kubectl
101+
- openssl aes-256-cbc -K $encrypted_78c7c6c95bf0_key -iv $encrypted_78c7c6c95bf0_iv -in credentials.tar.gz.enc -out credentials.tar.gz -d
102+
- tar -xzf credentials.tar.gz
103+
- rm credentials.tar.gz.enc credentials.tar.gz
104+
- gcloud auth activate-service-account --key-file travis-service-account.json
105+
- gcloud config set compute/zone europe-west3-c
106+
- gcloud config set project api-platform-demo-209807
107+
- mkdir -p ${HOME}/.kube
108+
- cp ./kubeConfig ${HOME}/.kube/config
109+
- curl -O https://storage.googleapis.com/kubernetes-helm/helm-v2.7.2-linux-amd64.tar.gz
110+
- tar -zxvf helm-v2.7.2-linux-amd64.tar.gz
111+
- rm -rf helm-v2.7.2-linux-amd64.tar.gz
112+
- sudo mv linux-amd64/helm /usr/local/bin/helm
113+
- gcloud container clusters get-credentials "api-platform-demo"
114+
- helm init
115+
- APP_ENV=prod composer install --no-scripts --no-dev --no-progress --no-suggest --optimize-autoloader --classmap-authoritative --no-interaction --prefer-dist
116+
- docker build -t gcr.io/api-platform-demo/php -t gcr.io/api-platform-demo/php:latest api/api --target api_platform_php
117+
- docker build -t gcr.io/api-platform-demo/nginx -t gcr.io/api-platform-demo/nginx:latest api/api --target api_platform_nginx
118+
- docker build -t gcr.io/api-platform-demo/varnish -t gcr.io/api-platform-demo/varnish:latest api/api --target api_platform_varnish
119+
- gcloud docker -- push gcr.io/api-platform-demo/php:latest
120+
- gcloud docker -- push gcr.io/api-platform-demo/nginx:latest
121+
- gcloud docker -- push gcr.io/api-platform-demo/varnish:latest
122+
- helm upgrade --recreate-pods --force --reset-values api-platform-demo --namespace=master \
123+
--set php.repository=gcr.io/api-platform-demo/php:latest \
124+
--set nginx.repository=gcr.io/api-platform-demo/nginx:latest \
125+
--set secret=${APP_SECRET} \
126+
--set postgresUser=${DATABASE_USER},postgresPassword="${DATABASE_PASSWORD}",postgresDatabase=${DATABASE_NAME} \
127+
--set postgresql.persistence.enabled=true \
128+
--set corsAllowOrigin='^https?://localhost(:[0-9]*)?$'
129+
- rm travis-service-account.json
130+
- gcloud auth revoke travis-service-account@api-platform-demo-209807.iam.gserviceaccount.com

docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ services:
1616
volumes:
1717
- ./api:/srv/api:rw,cached
1818
# If you develop on Linux, uncomment the following line to use a bind-mounted host directory instead
19-
# - ./api/var:/srv/api/var:rw
19+
- ./api/var:/srv/api/var:rw
2020

2121
api:
2222
image: ${CONTAINER_REGISTRY_BASE}/nginx

0 commit comments

Comments
 (0)