-
Notifications
You must be signed in to change notification settings - Fork 0
129 lines (109 loc) · 3.13 KB
/
test_suite.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
name: Test suite
on:
push:
branches:
- master
- develop
pull_request:
jobs:
lintcode:
name: Javascript lint
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v4
- name: setup node
uses: actions/setup-node@v4
with:
node-version: 20
- name: cache dependencies
uses: actions/cache@v3
with:
path: ~/.npm
key: ${{ runner.os }}-node-20-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-20-
- run: npm install
- run: npm run lint:code
tests:
name: Meteor ${{ matrix.meteor }} tests
runs-on: ubuntu-latest
steps:
# CHECKOUTS
- name: Checkout
uses: actions/checkout@v4
- name: Checkout leaonline:corelib repo
uses: actions/checkout@v4
with:
repository: leaonline/corelib
path: github/corelib
- name: Checkout leaonline:service-registry repo
uses: actions/checkout@v4
with:
repository: leaonline/service-registry
path: github/service-registry
- name: Checkout Collection2
uses: actions/checkout@v4
with:
repository: Meteor-Community-Packages/meteor-collection2
path: github/meteor-collection2
ref: release/v4
# CACHING
- name: Install Meteor
id: cache-meteor-install
uses: actions/cache@v4
with:
path: ~/.meteor
key: v1-meteor-${{ hashFiles('.meteor/versions') }}
restore-keys: |
v1-meteor-
- name: Cache NPM dependencies
id: cache-meteor-npm
uses: actions/cache@v4
with:
path: ~/.npm
key: v1-npm-${{ hashFiles('package-lock.json') }}
restore-keys: |
v1-npm-
- name: Cache Meteor build
id: cache-meteor-build
uses: actions/cache@v4
with:
path: |
.meteor/local/resolver-result-cache.json
.meteor/local/plugin-cache
.meteor/local/isopacks
.meteor/local/bundler-cache/scanner
key: v1-meteor_build_cache-${{ github.ref }}-${{ github.sha }}
restore-key: |
v1-meteor_build_cache-
- name: Setup meteor
uses: meteorengineer/setup-meteor@v1
with:
meteor-release: '2.12'
- name: Install NPM Dependencies
run: meteor npm ci
- name: Run Tests
run: sh ./test.sh -c -o
- name: Upload coverage
uses: actions/upload-artifact@v2
with:
name: coverage-folder
path: .coverage/
coverage:
name: Coverage report
runs-on: ubuntu-latest
needs: [ tests ]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download coverage
uses: actions/download-artifact@v2
with:
name: coverage-folder
path: .coverage/
- name: Coverage Report
uses: VeryGoodOpenSource/[email protected]
with:
path: ".coverage/lcov.info"
min_coverage: 65 # TODO increase to 95!