-
-
Notifications
You must be signed in to change notification settings - Fork 141
129 lines (107 loc) · 3.2 KB
/
on-pull-request.yml
File metadata and controls
129 lines (107 loc) · 3.2 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
---
name: CI
on:
pull_request:
branches:
- main
paths-ignore:
- "**.md"
- "img/**"
- "package.json"
- "package-lock.json"
permissions:
contents: 'read'
# Manage concurrency to stop running jobs and start new ones in case of new commit pushed
concurrency:
group: ${{ github.ref }}-${{ github.workflow }}
cancel-in-progress: true
jobs:
commit-lint:
runs-on: ubuntu-latest
if: ${{ github.event.pull_request.head.repo.full_name == github.repository }}
steps:
- name: Checkout sources
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Setup node
uses: actions/setup-node@v6
with:
node-version: 20
- name: Setup dependencies, cache and install
uses: ./.github/actions/install
- name: Lint commits
uses: wagoid/commitlint-github-action@v6
env:
NODE_PATH: ${{ github.workspace }}/node_modules
continue-on-error: true
pull-request-lint:
runs-on: ubuntu-latest
steps:
- name: Lint PR
uses: amannn/action-semantic-pull-request@v6
env:
GITHUB_TOKEN: ${{ github.token }}
npm-lint:
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v6
- name: Setup node
uses: actions/setup-node@v6
with:
node-version: 20
- name: Setup dependencies, cache and install
uses: ./.github/actions/install
- name: Check outdated dependencies
run: npm outdated --omit=dev
- name: Check unused dependencies
run: npm run lint:dependencies
- name: Audit dependencies
run: npm audit || true
megalinter:
runs-on: ubuntu-latest
steps:
# Git Checkout
- name: Checkout Code
uses: actions/checkout@v6
# MegaLinter
- name: MegaLinter
# You can override MegaLinter flavor used to have faster performances
# More info at https://megalinter.io/latest/flavors/
uses: oxsecurity/megalinter/flavors/javascript@v9
env:
# All available variables are described in documentation
# https://megalinter.io/latest/config-file/
APPLY_FIXES: all
VALIDATE_ALL_CODEBASE: true
# ADD CUSTOM ENV VARIABLES HERE TO OVERRIDE VALUES OF .mega-linter.yml AT THE ROOT OF YOUR REPOSITORY
- uses: actions/upload-artifact@v7
if: always()
with:
name: megalinter-reports
path: |
megalinter-reports
mega-linter.log
incremental-mutation-testing:
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Setup node
uses: actions/setup-node@v6
with:
node-version: 20
- name: Setup dependencies, cache and install
uses: ./.github/actions/install
- name: Incremental Mutation testing
run: npm run test:mutation:incremental
- uses: actions/upload-artifact@v7
with:
name: mutation-testing-reports
path: reports/mutation
build:
uses: ./.github/workflows/reusable-build.yml
secrets: inherit