-
Notifications
You must be signed in to change notification settings - Fork 2
129 lines (112 loc) · 3.76 KB
/
nodejs.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: "Quality test job"
on:
pull_request:
push:
create:
tags:
- v*
jobs:
# npm unit tests
unittest:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x, 20.x]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: npm install, build, and test
run: |
npm ci
npm run build --if-present
npm test
env:
CI: true
# test action works running from the repo itself
actiontest:
needs: unittest
runs-on: ubuntu-latest
strategy:
matrix:
FILES_EXTENSION: [.pm, .bck, .pm.bck, .pm|.bck ]
node-version: [18.x, 20.x]
env:
CONTROLS_FILE: controls_tests.txt
FILES_DIR: ./__tests__
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Prepare Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- uses: sidey79/[email protected]
with:
src: 'main.js'
ncc_args: '-o,dist,--source-map,--license,licenses.txt'
- name: update controls files for extension ${{ matrix.FILES_EXTENSION }}
uses: ./
id: controls
with:
filename: ${{ env.CONTROLS_FILE }}
directory: ${{ env.FILES_DIR }}
extension: ${{ matrix.FILES_EXTENSION }}
- name: Check if controls_tests.txt is written
uses: andstor/[email protected]
with:
files: ${{ env.CONTROLS_FILE }}
fail: false
- name: Check if controls_tests.txt has correct output for extension ${{ matrix.FILES_EXTENSION }}
id: contentCheck
run: |
case "${{ matrix.FILES_EXTENSION }}" in
".pm")
[ "$(grep -c "^UPD 2020-12-30_03:02:16 33 ./__tests__/mock.pm$" "${{ env.CONTROLS_FILE }}" )" -eq 1 ] \
&& [ "$(grep -c "^UPD 2021-01-05_22:45:33 36 ./__tests__/mock.pm.bck$" "${{ env.CONTROLS_FILE }}" )" -eq 0 ] \
&& exit 0 || exit 1 ;;
".bck")
[ "$(grep -c "^UPD 2020-12-30_03:02:16 33 ./__tests__/mock.pm$" "${{ env.CONTROLS_FILE }}" )" -eq 0 ] \
&& [ "$(grep -c "^UPD 2021-01-05_22:45:33 36 ./__tests__/mock.pm.bck$" "${{ env.CONTROLS_FILE }}" )" -eq 1 ] \
&& exit 0 || exit 1 ;;
".pm.bck")
[ "$(grep -c "^UPD 2020-12-30_03:02:16 33 ./__tests__/mock.pm$" "${{ env.CONTROLS_FILE }}" )" -eq 0 ] \
&& [ "$(grep -c "^UPD 2021-01-05_22:45:33 36 ./__tests__/mock.pm.bck$" "${{ env.CONTROLS_FILE }}" )" -eq 1 ] \
&& exit 0 || exit 1 ;;
".pm|.bck")
[ "$(grep -c "^UPD 2020-12-30_03:02:16 33 ./__tests__/mock.pm$" "${{ env.CONTROLS_FILE }}" )" -eq 1 ] \
&& [ "$(grep -c "^UPD 2021-01-05_22:45:33 36 ./__tests__/mock.pm.bck$" "${{ env.CONTROLS_FILE }}" )" -eq 1 ] \
&& exit 0 || exit 1 ;;
esac
exit 1
- name: Echo controls output
run: |
echo "${{ steps.controls.outputs.controls_content }}"
# generate new package
ncc:
needs: actiontest
runs-on: ubuntu-latest
if: ${{ github.event_name == 'push' }}
steps:
- uses: actions/checkout@v4
- name: Prepare Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- uses: sidey79/[email protected]
with:
src: 'main.js'
ncc_args: '-o,dist,--source-map,--license,licenses.txt'
- uses: EndBug/add-and-commit@v9
with:
message: Commit Dist file
committer_name: GitHub Actions
committer_email: [email protected]
add: 'dist'
commit: --signoff
push: true