· 6 years ago · Mar 22, 2020, 08:12 PM
1name: Deploy to dev.sch.hiptmairit.at
2
3on:
4 push:
5 branches:
6 - dev
7jobs:
8 build-and-deploy:
9 runs-on: ubuntu-latest
10 steps:
11 - name: clone code repository
12 uses: actions/checkout@v1
13 - name: setup git user
14 run: |
15 git config --global user.email "jonas.hiptmair@hotmail.com"
16 git config --global user.name "HiptJo"
17 - name: clone build repository
18 uses: actions/checkout@v2-beta
19 with:
20 token: ${{ secrets.GIT_KEY }}
21 repository: HiptJo/build_schuliov2
22 path: "build/"
23 - name: caching node
24 uses: actions/cache@v1
25 with:
26 path: ~/.npm
27 key: ${{ runner.os }}-node-${{ hashFiles('**/api/package-lock.json') }}
28 restore-keys: |
29 ${{ runner.os }}-schulio-build-${{ env.cache-name }}-
30 ${{ runner.os }}-schulio-build-
31 ${{ runner.os }}-schulio-
32 - name: caching for angular
33 uses: actions/cache@v1
34 with:
35 path: /opt/hostedtoolcache/node/10.17.0/x64/lib/node_modules
36 key: ${{ runner.os }}-schulio-angular
37 restore-keys: |
38 ${{ runner.os }}-schulio-build-${{ env.cache-name }}-
39 ${{ runner.os }}-schulio-build-
40 ${{ runner.os }}-schulio-
41 - name: caching node_modules for angular
42 uses: actions/cache@v1
43 with:
44 path: ./front/node_modules
45 key: ${{ runner.os }}-node-${{ hashFiles('front/package-lock.json') }}
46 restore-keys: |
47 ${{ runner.os }}-schulio-build-${{ env.cache-name }}-
48 ${{ runner.os }}-schulio-build-
49 ${{ runner.os }}-schulio-
50 - name: caching node_modules for nodejs
51 uses: actions/cache@v1
52 with:
53 path: ./api/node_modules
54 key: ${{ runner.os }}-node-${{ hashFiles('api/package-lock.json') }}
55 restore-keys: |
56 ${{ runner.os }}-schulio-build-${{ env.cache-name }}-
57 ${{ runner.os }}-schulio-build-
58 ${{ runner.os }}-schulio-
59 - name: install nodejs
60 uses: actions/setup-node@v1
61 with:
62 node-version: "12.x"
63 - name: setup nodejs
64 run: |
65 cd api
66 npm install
67 - name: test nodejs
68 run: |
69 cd api
70 cp ./src/environment/localconfig.ts.t ./src/environment/localconfig.ts
71 sed -i s,{{mysql-user}},${{ secrets.MYSQL_DEV_USER }},g ./src/environment/localconfig.ts
72 sed -i s,{{mysql-password}},${{ secrets.MYSQL_DEV_PASSWORD }},g ./src/environment/localconfig.ts
73 sed -i s,{{mysql-db}},${{ secrets.MYSQL_DEV_DB }},g ./src/environment/localconfig.ts
74 sed -i s,{{mysql-host}},${{ secrets.MYSQL_DEV_HOST }},g ./src/environment/localconfig.ts
75 npm run copy
76 npm run test:prod
77 - name: setup angular
78 run: |
79 cd front
80 npm install
81 - name: build angular
82 run: |
83 cd front
84 npm run build:prod
85 - name: build nodejs
86 run: |
87 cd api
88 cp ./src/environment/localconfig.ts.t ./src/environment/localconfig.ts
89 npm run build:prod
90 - name: move nodejs
91 run: |
92 cd build
93 cp -r ../api/build/* .
94 cp ../api/package.json .
95 cp ../api/package-lock.json .
96 - name: commit new build
97 run: |
98 cd build
99 git add *
100 git commit -m "auto build @ github action" || echo nothing to commit
101 git push || echo nothing to push
102 - name: deploy to dev.sch.hiptmairit.at
103 uses: JimCronqvist/action-ssh@master
104 with:
105 hosts: "${{ secrets.GIT_SSH_USER }}@${{ secrets.GIT_SSH_HOST }}"
106 privateKey: ${{ secrets.GIT_SSH_PRIVATE }}
107 command: |
108 cd /www/dev/schulio
109 git stash
110 git pull
111 sed -i s,{{mysql-user}},${{ secrets.MYSQL_DEV_USER }},g environment/localconfig.js
112 sed -i s,{{mysql-password}},${{ secrets.MYSQL_DEV_PASSWORD }},g environment/localconfig.js
113 sed -i s,{{mysql-db}},${{ secrets.MYSQL_DEV_DB }},g environment/localconfig.js
114 sed -i s,{{mysql-host}},${{ secrets.MYSQL_DEV_HOST }},g environment/localconfig.js
115 touch tmp/restart.txt