-
-
Notifications
You must be signed in to change notification settings - Fork 2
142 lines (135 loc) Β· 3.86 KB
/
main.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
name: "CI"
on:
pull_request:
push:
branches:
- master
jobs:
Unit_Tests:
name: Unit Tests
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Install Node
uses: actions/setup-node@v4
with:
node-version: '*'
- name: Install Dependencies
run: npm ci
- name: Run Tests π©π½βπ»
run: npm run test:unit
Unit_Coverage:
name: Unit Coverage
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Install Node
uses: actions/setup-node@v4
with:
node-version: 'lts/*'
- name: Install Dependencies
run: npm ci
- name: Check Coverage π
run: npm run test:cover
MySQL_Tests:
name: MySQL Tests
strategy:
fail-fast: false
matrix:
version: ['8.0']
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Shutdown Default MySQL
run: sudo service mysql stop
- name: Set up MySQL
env:
MYSQL_VERSION: ${{ matrix.version }}
run: |
sudo docker run -e MYSQL_RANDOM_ROOT_PASSWORD=true -e MYSQL_USER=sequelizr_test -e MYSQL_PASSWORD=sequelizr_test -e MYSQL_DATABASE=sequelizr_test -d -p 3306:3306 --name mysql --health-cmd 'mysqladmin ping --silent' mysql:$MYSQL_VERSION
- name: Install Node
uses: actions/setup-node@v4
with:
node-version: 'lts/*'
- name: Install Dependencies
run: npm ci
- name: Run Tests π©π½βπ»
env:
SEQ_DB: sequelizr_test
SEQ_USER: sequelizr_test
SEQ_PW: sequelizr_test
SEQ_HOST: localhost
SEQ_PORT: 3306
run: npm run test:mysql
MSSQL_Tests:
name: MSSQL Tests
strategy:
fail-fast: false
matrix:
version: [2017-latest]
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Set up MSSQL
env:
MSSQL_VERSION: ${{ matrix.version }}
run: |
sudo chmod +x ./scripts/mssql/entrypoint.sh
sudo chmod +x ./scripts/mssql/configure-db.sh
sudo docker build --build-arg MSSQL_VERSION=$MSSQL_VERSION -t sequelizr-mssql ./scripts/mssql
sudo docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=Password32!' -p 1433:1433 --name mssql -d sequelizr-mssql
- name: Install Node
uses: actions/setup-node@v4
with:
node-version: 'lts/*'
- name: Install Dependencies
run: npm ci
- name: Run Tests π©π½βπ»
env:
SEQ_DB: sequelizr_test
SEQ_USER: sequelizr_test
SEQ_PW: Sequelizr_test32!
SEQ_HOST: localhost
SEQ_PORT: 1433
run: npm run test:mssql
Lint:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Install Node
uses: actions/setup-node@v4
with:
node-version: 'lts/*'
- name: Install Dependencies
run: npm ci
- name: Lint β¨
run: npm run lint
Release:
needs: [Unit_Tests, Unit_Coverage, MySQL_Tests, Lint]
if: |
github.ref == 'refs/heads/master' &&
github.event.repository.fork == false
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Install Node
uses: actions/setup-node@v4
with:
node-version: 'lts/*'
- name: Install Dependencies
run: npm ci
- name: Release π
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: npx semantic-release