-
Notifications
You must be signed in to change notification settings - Fork 3
135 lines (120 loc) · 3.4 KB
/
node.js.pr.yml
File metadata and controls
135 lines (120 loc) · 3.4 KB
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
name: Build & Test PR
on:
pull_request:
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js environment
uses: actions/setup-node@v4
- name: Cache pnpm modules
uses: actions/cache@v4
env:
cache-name: cache-pnpm-modules
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
pnpm-
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
run_install: true
- name: Find version
run: |
npm run env | grep npm_package_version >> $GITHUB_ENV
- run: |
echo Workflow triggered by event ${{ github.event_name }}
- name: Build
run: npm run build:all # does not run tests
- name: Archive extension
uses: actions/upload-artifact@v4
with:
name: enhancer_for_nebula-${{ env.npm_package_version }}
path: |
extension-dist/
if-no-files-found: error
test:
name: Test
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v4
- name: Setup Node.js environment
uses: actions/setup-node@v4
- name: Cache pnpm modules
uses: actions/cache@v4
env:
cache-name: cache-pnpm-modules
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
pnpm-
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
run_install: true
- name: Find version
run: |
npm run env | grep npm_package_version >> $GITHUB_ENV
- name: Get build files
uses: actions/download-artifact@v4
with:
name: enhancer_for_nebula-${{ env.npm_package_version }}
path: |
extension-dist/
- name: Clear jest cache
run: npx jest --clear-cache
- name: Run all tests
run: npm run test:pr -- --ci
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
lint:
name: Lint
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v4
- name: Setup Node.js environment
uses: actions/setup-node@v4
- name: Cache pnpm modules
uses: actions/cache@v4
env:
cache-name: cache-pnpm-modules
with:
path: ~/.pnpm-store
key: pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
pnpm-
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
run_install: true
- name: Find version
run: |
npm run env | grep npm_package_version >> $GITHUB_ENV
- name: Install grep and find
run: sudo apt-get install grep findutils
- name: Create non-minified files
run: npm run build:all -- --environment NO_MINIFY
env:
YT_API_KEY: ${{ secrets.YOUTUBE_KEY }}
- name: Verify no debug artifacts
run: chmod +x .github/verify-artifacts.sh && .github/verify-artifacts.sh
shell: bash
- name: Run addon linter on non-minified
run: npm run lint:ext
- name: Get build files
uses: actions/download-artifact@v4
with:
name: enhancer_for_nebula-${{ env.npm_package_version }}
path: |
extension-dist/
- name: Verify directory structure
run: chmod +x .github/verify-dirs.sh && .github/verify-dirs.sh
shell: bash
- name: Run linters
run: npm run lint