-
Notifications
You must be signed in to change notification settings - Fork 26
133 lines (122 loc) · 3.53 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
130
131
132
133
name: Node.js CI
on:
push:
branches: [v*, next]
paths-ignore:
- 'docs/*'
- '*.md'
pull_request:
branches: [v*, next]
paths-ignore:
- 'docs/*'
- '*.md'
jobs:
Build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
node-version: [20.x]
permissions:
checks: write
pull-requests: write
steps:
- name: Checkout branch
uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'yarn'
- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Build projects
run: yarn build
- name: Run tests
run: yarn test
- name: Publish Test Results
uses: EnricoMi/publish-unit-test-result-action@v2
if: matrix.os == 'ubuntu-latest'
with:
junit_files: 'test-results/*.xml'
- name: Upload unit-tests coverage to Codecov
uses: codecov/codecov-action@v3.1.1
with:
directory: coverage/library
flags: unittests
- name: Upload examples code coverage to Codecov
uses: codecov/codecov-action@v3.1.1
with:
directory: coverage/integration
flags: integration
Lint-Files:
runs-on: ubuntu-latest
steps:
- name: Checkout branch
uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: 20.8.1
cache: 'yarn'
- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Check licenses
run: yarn license-checker
- name: Lint project
run: yarn lint -f @microsoft/eslint-formatter-sarif -o eslint.sarif
- name: Upload linter SARIF file
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: eslint.sarif
CodeQL-Analysis:
runs-on: ubuntu-latest
steps:
- name: Checkout branch
uses: actions/checkout@v4
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: javascript
- name: Setup NodeJS
uses: actions/setup-node@v3
with:
node-version: 20.8.1
cache: 'yarn'
- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Build projects
run: yarn build
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
Qodana-Analysis:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup NodeJS
uses: actions/setup-node@v3
with:
node-version: 20.8.1
cache: 'yarn'
- name: Install dependencies
run: yarn install --frozen-lockfile
- name: 'Qodana Scan'
uses: JetBrains/qodana-action@v2023.2.6
- uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: ${{ runner.temp }}/qodana/results/qodana.sarif.json
automerge:
name: 'Merge Dependabot updates'
if: github.event_name == 'pull_request'
needs: [Build, Lint-Files, CodeQL-Analysis]
runs-on: ubuntu-latest
permissions:
pull-requests: write
contents: write
steps:
- uses: fastify/github-action-merge-dependabot@v3.6.3
with:
github-token: ${{ secrets.GITHUB_TOKEN }}