@@ -11,40 +11,57 @@ services:
1111 - mysql
1212 - redis
1313
14+ before_install :
15+ - openssl aes-256-cbc -K $encrypted_3c84dcdc6bbe_key -iv $encrypted_3c84dcdc6bbe_iv -in .env.enc -out .env -d
16+ # login to github registry
17+ - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin docker.pkg.github.com
18+
1419jobs :
1520 include :
16- - stage : build
21+ - stage : Build Backend
1722 script :
18- - openssl aes-256-cbc -K $encrypted_3c84dcdc6bbe_key -iv $encrypted_3c84dcdc6bbe_iv -in .env.enc -out .env -d
19- # login to github registry
20- - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin docker.pkg.github.com
2123 # build image
22- - docker build -t docker.pkg.github.com/seluj78/pymatcha/pymatcha-api:latest . -f backend.Dockerfile
24+ - docker build -t docker.pkg.github.com/seluj78/pymatcha/pymatcha-backend:$TRAVIS_COMMIT . -f backend.Dockerfile
25+ after_success :
2326 # push image
24- - docker push docker.pkg.github.com/seluj78/pymatcha/pymatcha-api:latest
25- - stage : test
26- before_script :
27- - node --version
28- - npm --version
29- - npm install -g newman
30- - newman --version
27+ - docker push docker.pkg.github.com/seluj78/pymatcha/pymatcha-backend:$TRAVIS_COMMIT
28+
29+ - stage : Build Frontend
30+ script :
31+ # build image
32+ - docker build -t docker.pkg.github.com/seluj78/pymatcha/pymatcha-frontend:$TRAVIS_COMMIT . -f frontend.Dockerfile
33+ after_success :
34+ # push image
35+ - docker push docker.pkg.github.com/seluj78/pymatcha/pymatcha-frontend:$TRAVIS_COMMIT
36+
37+ - stage : Build Workers
38+ script :
39+ # build image
40+ - docker build -t docker.pkg.github.com/seluj78/pymatcha/pymatcha-workers:$TRAVIS_COMMIT . -f workers.Dockerfile
41+ after_success :
42+ # push image
43+ - docker push docker.pkg.github.com/seluj78/pymatcha/pymatcha-workers:$TRAVIS_COMMIT
44+
45+ - stage : Test API
46+ install :
3147 - wget https://repo.mysql.com//mysql-apt-config_0.8.15-1_all.deb
3248 - sudo dpkg -i mysql-apt-config_0.8.15-1_all.deb
3349 - sudo apt-get update -q
3450 - sudo apt-get install -q -y --allow-unauthenticated -o Dpkg::Options::=--force-confnew mysql-server
3551 - sudo systemctl restart mysql
3652 - sudo mysql_upgrade
53+ - npm install -g newman
54+ before_script :
55+ - node --version
56+ - npm --version
57+ - newman --version
3758 - mysql --version
3859 - mysql -e 'CREATE DATABASE pymatcha;'
60+ # pull image
61+ - docker pull docker.pkg.github.com/seluj78/pymatcha/pymatcha-backend:$TRAVIS_COMMIT
3962 script :
40- # login to github registry
41- - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin docker.pkg.github.com
42- # pull images
43- - docker pull docker.pkg.github.com/seluj78/pymatcha/pymatcha-api:latest
44- # decrypt the env file
45- - openssl aes-256-cbc -K $encrypted_3c84dcdc6bbe_key -iv $encrypted_3c84dcdc6bbe_iv -in .env.enc -out .env -d
4663 # Run the backend api
47- - docker run -d -p 5000:5000 --restart always --env-file .env --network="host" docker.pkg.github.com/seluj78/pymatcha/pymatcha-api:latest
64+ - docker run -d -p 5000:5000 --restart always --env-file .env --network="host" docker.pkg.github.com/seluj78/pymatcha/pymatcha-backend:$TRAVIS_COMMIT
4865 # Wait for docker to be up
4966 - sleep 10
5067 # run newman tests
@@ -53,13 +70,29 @@ jobs:
5370 # stop and remove docker to prevent them from block port at next iteration/test
5471 - docker stop $(docker ps -a -q)
5572 - docker rm $(docker ps -a -q)
56- - stage : lint
73+
74+ - stage : Lint Backend
5775 before_script :
5876 - pip install -r backend/requirements.txt
5977 script :
6078 - black --check backend/
6179 - flake8 backend/
6280
81+ - stage : Tag new releases
82+ if : branch = dev
83+ script :
84+ - docker pull docker.pkg.github.com/seluj78/pymatcha/pymatcha-backend:$TRAVIS_COMMIT
85+ - docker pull docker.pkg.github.com/seluj78/pymatcha/pymatcha-frontend:$TRAVIS_COMMIT
86+ - docker pull docker.pkg.github.com/seluj78/pymatcha/pymatcha-workers:$TRAVIS_COMMIT
87+ # Tag images
88+ - docker tag docker.pkg.github.com/seluj78/pymatcha/pymatcha-backend:$TRAVIS_COMMIT docker.pkg.github.com/seluj78/pymatcha/pymatcha-backend:latest
89+ - docker tag docker.pkg.github.com/seluj78/pymatcha/pymatcha-frontend:$TRAVIS_COMMIT docker.pkg.github.com/seluj78/pymatcha/pymatcha-frontend:latest
90+ - docker tag docker.pkg.github.com/seluj78/pymatcha/pymatcha-workers:$TRAVIS_COMMIT docker.pkg.github.com/seluj78/pymatcha/pymatcha-workers:latest
91+ # push image
92+ - docker push docker.pkg.github.com/seluj78/pymatcha/pymatcha-backend:latest
93+ - docker push docker.pkg.github.com/seluj78/pymatcha/pymatcha-frontend:latest
94+ - docker push docker.pkg.github.com/seluj78/pymatcha/pymatcha-workers:latest
95+
6396notifications :
6497 email :
6598 recipients :
0 commit comments