1+ on : [push]
2+
3+ env :
4+ REGISTRY_DOMAIN : ${{ secrets.REGISTRY_DOMAIN }}
5+ SERVICE_DOMAIN : localhost
6+
7+ jobs :
8+ build-dev :
9+ name : Build dev environment
10+ runs-on : ubuntu-latest
11+ env :
12+ DOCKER_USERNAME : ${{ secrets.DOCKER_USERNAME }}
13+ DOCKER_PASSWORD : ${{ secrets.DOCKER_PASSWORD }}
14+ steps :
15+ - name : Checkout source code
16+ uses : actions/checkout@master
17+ - name : docker hub login
18+ run : |
19+ echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin $REGISTRY_DOMAIN
20+ - name : Build nginx image
21+ run : |
22+ cd nginx
23+ docker build . -t $REGISTRY_DOMAIN/chrisleekr/nodejs-vuejs-mysql-boilerplate:nginx-dev
24+ docker push $REGISTRY_DOMAIN/chrisleekr/nodejs-vuejs-mysql-boilerplate:nginx-dev
25+ - name : Build api dev image
26+ run : |
27+ cd api
28+ docker build . --target dev-stage -t $REGISTRY_DOMAIN/chrisleekr/nodejs-vuejs-mysql-boilerplate:api-dev
29+ docker push $REGISTRY_DOMAIN/chrisleekr/nodejs-vuejs-mysql-boilerplate:api-dev
30+ - name : Build frontend dev image
31+ run : |
32+ cd frontend
33+ docker build . --target build-stage --build-arg NODE_ENV=$NODE_ENV --build-arg BASE_URL=$BASE_URL -t $REGISTRY_DOMAIN/chrisleekr/nodejs-vuejs-mysql-boilerplate:frontend-dev
34+ docker push $REGISTRY_DOMAIN/chrisleekr/nodejs-vuejs-mysql-boilerplate:frontend-dev
35+ - name : Build backend dev image
36+ run : |
37+ cd backend
38+ docker build . --target build-stage --build-arg NODE_ENV=$NODE_ENV --build-arg BASE_URL=$BASE_URL -t $REGISTRY_DOMAIN/chrisleekr/nodejs-vuejs-mysql-boilerplate:backend-dev
39+ docker push $REGISTRY_DOMAIN/chrisleekr/nodejs-vuejs-mysql-boilerplate:backend-dev
40+ - name : Build mysql dev image
41+ run : |
42+ cd mysql
43+ docker build . -t $REGISTRY_DOMAIN/chrisleekr/nodejs-vuejs-mysql-boilerplate:mysql-dev
44+ docker push $REGISTRY_DOMAIN/chrisleekr/nodejs-vuejs-mysql-boilerplate:mysql-dev
45+ - name : Run docker compose for dev
46+ run : |
47+ docker-compose -f docker-compose.actions.yml pull
48+ docker-compose -f docker-compose.actions.yml up -d
49+ - name : Lint API
50+ run : |
51+ docker exec api npm run lint
52+ - name : Lint backend
53+ run : |
54+ docker exec backend npm run lint
55+ - name : Lint frontend
56+ run : |
57+ docker exec frontend npm run lint
58+ - name : Build nginx image
59+ if : github.ref == 'refs/heads/master'
60+ run : |
61+ cd nginx
62+ docker build . -t $REGISTRY_DOMAIN/chrisleekr/nodejs-vuejs-mysql-boilerplate:nginx-latest
63+ docker push $REGISTRY_DOMAIN/chrisleekr/nodejs-vuejs-mysql-boilerplate:nginx-latest
64+ - name : Build api latest image
65+ if : github.ref == 'refs/heads/master'
66+ run : |
67+ cd api
68+ docker build . --target production-stage -t $REGISTRY_DOMAIN/chrisleekr/nodejs-vuejs-mysql-boilerplate:api-latest
69+ docker push $REGISTRY_DOMAIN/chrisleekr/nodejs-vuejs-mysql-boilerplate:api-latest
70+ - name : Build frontend latest image
71+ if : github.ref == 'refs/heads/master'
72+ run : |
73+ cd frontend
74+ docker build . --target production-stage --build-arg NODE_ENV=$NODE_ENV --build-arg BASE_URL=$BASE_URL -t $REGISTRY_DOMAIN/chrisleekr/nodejs-vuejs-mysql-boilerplate:frontend-latest
75+ docker push $REGISTRY_DOMAIN/chrisleekr/nodejs-vuejs-mysql-boilerplate:frontend-latest
76+ - name : Build backend latest image
77+ if : github.ref == 'refs/heads/master'
78+ run : |
79+ cd backend
80+ docker build . --target production-stage --build-arg NODE_ENV=$NODE_ENV --build-arg BASE_URL=$BASE_URL -t $REGISTRY_DOMAIN/chrisleekr/nodejs-vuejs-mysql-boilerplate:backend-latest
81+ docker push $REGISTRY_DOMAIN/chrisleekr/nodejs-vuejs-mysql-boilerplate:backend-latest
82+ - name : Build mysql latest image
83+ if : github.ref == 'refs/heads/master'
84+ run : |
85+ cd mysql
86+ docker build . -t $REGISTRY_DOMAIN/chrisleekr/nodejs-vuejs-mysql-boilerplate:mysql-latest
87+ docker push $REGISTRY_DOMAIN/chrisleekr/nodejs-vuejs-mysql-boilerplate:mysql-latest
0 commit comments