@@ -11,58 +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 :
1621 - 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
27+ - docker push docker.pkg.github.com/seluj78/pymatcha/pymatcha-backend:$TRAVIS_COMMIT
28+
2529 - stage : Build Frontend
2630 script :
27- - openssl aes-256-cbc -K $encrypted_3c84dcdc6bbe_key -iv $encrypted_3c84dcdc6bbe_iv -in .env.enc -out .env -d
28- # login to github registry
29- - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin docker.pkg.github.com
3031 # build image
31- - docker build -t docker.pkg.github.com/seluj78/pymatcha/pymatcha-frontend:latest . -f frontend.Dockerfile
32+ - docker build -t docker.pkg.github.com/seluj78/pymatcha/pymatcha-frontend:$TRAVIS_COMMIT . -f frontend.Dockerfile
33+ after_success :
3234 # push image
33- - docker push docker.pkg.github.com/seluj78/pymatcha/pymatcha-frontend:latest
35+ - docker push docker.pkg.github.com/seluj78/pymatcha/pymatcha-frontend:$TRAVIS_COMMIT
36+
3437 - stage : Build Workers
3538 script :
36- - openssl aes-256-cbc -K $encrypted_3c84dcdc6bbe_key -iv $encrypted_3c84dcdc6bbe_iv -in .env.enc -out .env -d
37- # login to github registry
38- - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin docker.pkg.github.com
3939 # build image
40- - docker build -t docker.pkg.github.com/seluj78/pymatcha/pymatcha-workers:latest . -f workers.Dockerfile
40+ - docker build -t docker.pkg.github.com/seluj78/pymatcha/pymatcha-workers:$TRAVIS_COMMIT . -f workers.Dockerfile
41+ after_success :
4142 # push image
42- - docker push docker.pkg.github.com/seluj78/pymatcha/pymatcha-workers:latest
43+ - docker push docker.pkg.github.com/seluj78/pymatcha/pymatcha-workers:$TRAVIS_COMMIT
44+
4345 - stage : Test API
44- before_script :
45- - node --version
46- - npm --version
47- - npm install -g newman
48- - newman --version
46+ install :
4947 - wget https://repo.mysql.com//mysql-apt-config_0.8.15-1_all.deb
5048 - sudo dpkg -i mysql-apt-config_0.8.15-1_all.deb
5149 - sudo apt-get update -q
5250 - sudo apt-get install -q -y --allow-unauthenticated -o Dpkg::Options::=--force-confnew mysql-server
5351 - sudo systemctl restart mysql
5452 - sudo mysql_upgrade
53+ - npm install -g newman
54+ before_script :
55+ - node --version
56+ - npm --version
57+ - newman --version
5558 - mysql --version
5659 - mysql -e 'CREATE DATABASE pymatcha;'
60+ # pull image
61+ - docker pull docker.pkg.github.com/seluj78/pymatcha/pymatcha-backend:$TRAVIS_COMMIT
5762 script :
58- # login to github registry
59- - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin docker.pkg.github.com
60- # pull images
61- - docker pull docker.pkg.github.com/seluj78/pymatcha/pymatcha-api:latest
62- # decrypt the env file
63- - openssl aes-256-cbc -K $encrypted_3c84dcdc6bbe_key -iv $encrypted_3c84dcdc6bbe_iv -in .env.enc -out .env -d
6463 # Run the backend api
65- - 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
6665 # Wait for docker to be up
6766 - sleep 10
6867 # run newman tests
@@ -71,13 +70,29 @@ jobs:
7170 # stop and remove docker to prevent them from block port at next iteration/test
7271 - docker stop $(docker ps -a -q)
7372 - docker rm $(docker ps -a -q)
73+
7474 - stage : Lint Backend
7575 before_script :
7676 - pip install -r backend/requirements.txt
7777 script :
7878 - black --check backend/
7979 - flake8 backend/
8080
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+
8196notifications :
8297 email :
8398 recipients :
0 commit comments