@@ -11,65 +11,55 @@ 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
2224 - docker build -t docker.pkg.github.com/seluj78/pymatcha/pymatcha-backend:$TRAVIS_COMMIT . -f backend.Dockerfile
23- # Tag images
24- - docker tag docker.pkg.github.com/seluj78/pymatcha/pymatcha-backend:$TRAVIS_COMMIT docker.pkg.github.com/seluj78/pymatcha/pymatcha-backend:latest
25+ after_success :
2526 # push image
2627 - docker push docker.pkg.github.com/seluj78/pymatcha/pymatcha-backend:$TRAVIS_COMMIT
27- - docker push docker.pkg.github.com/seluj78/pymatcha/pymatcha-backend:latest
28+
2829 - stage : Build Frontend
2930 script :
30- - openssl aes-256-cbc -K $encrypted_3c84dcdc6bbe_key -iv $encrypted_3c84dcdc6bbe_iv -in .env.enc -out .env -d
31- # login to github registry
32- - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin docker.pkg.github.com
3331 # build image
3432 - docker build -t docker.pkg.github.com/seluj78/pymatcha/pymatcha-frontend:$TRAVIS_COMMIT . -f frontend.Dockerfile
35- # Tag images
36- - docker tag docker.pkg.github.com/seluj78/pymatcha/pymatcha-frontend:$TRAVIS_COMMIT docker.pkg.github.com/seluj78/pymatcha/pymatcha-frontend:latest
33+ after_success :
3734 # push image
3835 - docker push docker.pkg.github.com/seluj78/pymatcha/pymatcha-frontend:$TRAVIS_COMMIT
39- - docker push docker.pkg.github.com/seluj78/pymatcha/pymatcha-frontend:latest
36+
4037 - stage : Build Workers
4138 script :
42- - openssl aes-256-cbc -K $encrypted_3c84dcdc6bbe_key -iv $encrypted_3c84dcdc6bbe_iv -in .env.enc -out .env -d
43- # login to github registry
44- - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin docker.pkg.github.com
4539 # build image
4640 - docker build -t docker.pkg.github.com/seluj78/pymatcha/pymatcha-workers:$TRAVIS_COMMIT . -f workers.Dockerfile
47- # Tag images
48- - docker tag docker.pkg.github.com/seluj78/pymatcha/pymatcha-workers:$TRAVIS_COMMIT docker.pkg.github.com/seluj78/pymatcha/pymatcha-workers:latest
41+ after_success :
4942 # push image
5043 - docker push docker.pkg.github.com/seluj78/pymatcha/pymatcha-workers:$TRAVIS_COMMIT
51- - docker push docker.pkg.github.com/seluj78/pymatcha/pymatcha-workers:latest
44+
5245 - stage : Test API
53- before_script :
54- - node --version
55- - npm --version
56- - npm install -g newman
57- - newman --version
46+ install :
5847 - wget https://repo.mysql.com//mysql-apt-config_0.8.15-1_all.deb
5948 - sudo dpkg -i mysql-apt-config_0.8.15-1_all.deb
6049 - sudo apt-get update -q
6150 - sudo apt-get install -q -y --allow-unauthenticated -o Dpkg::Options::=--force-confnew mysql-server
6251 - sudo systemctl restart mysql
6352 - sudo mysql_upgrade
53+ - npm install -g newman
54+ before_script :
55+ - node --version
56+ - npm --version
57+ - newman --version
6458 - mysql --version
6559 - mysql -e 'CREATE DATABASE pymatcha;'
66- script :
67- # login to github registry
68- - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin docker.pkg.github.com
69- # pull images
60+ # pull image
7061 - docker pull docker.pkg.github.com/seluj78/pymatcha/pymatcha-backend:latest
71- # decrypt the env file
72- - openssl aes-256-cbc -K $encrypted_3c84dcdc6bbe_key -iv $encrypted_3c84dcdc6bbe_iv -in .env.enc -out .env -d
62+ script :
7363 # Run the backend api
7464 - docker run -d -p 5000:5000 --restart always --env-file .env --network="host" docker.pkg.github.com/seluj78/pymatcha/pymatcha-backend:latest
7565 # Wait for docker to be up
@@ -80,13 +70,29 @@ jobs:
8070 # stop and remove docker to prevent them from block port at next iteration/test
8171 - docker stop $(docker ps -a -q)
8272 - docker rm $(docker ps -a -q)
73+
8374 - stage : Lint Backend
8475 before_script :
8576 - pip install -r backend/requirements.txt
8677 script :
8778 - black --check backend/
8879 - flake8 backend/
8980
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+
9096notifications :
9197 email :
9298 recipients :
0 commit comments