-
Notifications
You must be signed in to change notification settings - Fork 2
151 lines (115 loc) · 3.31 KB
/
ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# ESLint is a tool for identifying and reporting on patterns
# found in ECMAScript/JavaScript code.
# More details at https://github.com/eslint/eslint
# and https://eslint.org
name: Continuous Integration
on:
push:
branches:
- main
- develop
pull_request:
branches:
- main
- develop
jobs:
code-style-express:
name: Run style checks for Express server
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-latest ]
node-version: [ 14 ]
permissions:
contents: read
security-events: write
actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Install packages
run: yarn
- name: Run ESLint for Express
run: yarn run style:lint
- name: Run Prettier for Express
run: yarn run style:prettier
code-style-vue:
name: Run style checks for Vue.js app
runs-on: ${{ matrix.os }}
defaults:
run:
working-directory: ./client
strategy:
matrix:
os: [ ubuntu-latest ]
node-version: [ 14 ]
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Install packages
run: yarn
- name: Run ESLint for Vue.js
run: yarn run style:lint
- name: Run Prettier for Vue.js
run: yarn run style:prettier
testing:
name: Run tests
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-latest ]
node-version: [ 14 ]
mongodb-version: [ 4.6 ]
permissions:
contents: read
security-events: write
actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Initialize environment variables
run: cp -n ./env.template ./.env
- name: Start MongoDB
uses: supercharge/mongodb-github-action@docker-network
with:
mongodb-port: 27017
mongodb-db: handshake
- name: Install packages
run: yarn
- name: Run tests
run: yarn run start:test
env:
MONGODB_URI: mongodb://localhost:27017/handshake
build-vue:
name: Build Vue.js app
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./client
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 14
- name: Install packages
run: yarn
- name: Build Vue.js app
run: yarn run build