-
Notifications
You must be signed in to change notification settings - Fork 824
135 lines (120 loc) · 3.9 KB
/
Copy pathaglint.yml
File metadata and controls
135 lines (120 loc) · 3.9 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: AGLint
env:
NODE_VERSION: 24
on:
push:
branches:
- master
paths:
- "**/*.txt"
- "**/.aglintignore"
- "**/.aglintrc"
- "**/.aglintrc.json"
- "**/.aglintrc.yaml"
- "**/.aglintrc.yml"
- "**/aglint.config.json"
- "**/aglint.config.yaml"
- "**/aglint.config.yml"
- "**/package.json"
- "package-lock.json"
pull_request:
branches:
- master
paths:
- "**/*.txt"
- "**/.aglintignore"
- "**/.aglintrc"
- "**/.aglintrc.json"
- "**/.aglintrc.yaml"
- "**/.aglintrc.yml"
- "**/aglint.config.json"
- "**/aglint.config.yaml"
- "**/aglint.config.yml"
- "**/package.json"
- "package-lock.json"
jobs:
lint:
name: Run AGLint
runs-on: ubuntu-latest
steps:
- name: Check out to repository
uses: actions/checkout@v7
- name: Set up Node.js
uses: actions/setup-node@v7
with:
node-version: ${{ env.NODE_VERSION }}
cache: npm
- name: Install dependencies
run: npm ci
- name: AGLint cache
uses: actions/cache@v6.1.0
with:
path: .aglintcache
key: >
${{ runner.os }}-aglint-${{ hashFiles(
'**/.aglintignore',
'**/.aglintrc',
'**/.aglintrc.json',
'**/.aglintrc.yaml',
'**/.aglintrc.yml',
'**/aglint.config.json',
'**/aglint.config.yaml',
'**/aglint.config.yml',
'**/package.json',
'package-lock.json'
) }}
restore-keys: |
${{ runner.os }}-aglint-
# If the linter found any errors, it will exit with a non-zero code, which will cause the job to fail
- name: Run AGLint
run: npm run aglint
notify:
name: Send Slack notification on failure
runs-on: ubuntu-latest
needs: lint
# Run this job only if the previous job failed and the event was triggered by the 'AdguardTeam/AdguardFilters' repository
# Note: 'always()' is needed to run the notify job even if the lint job was failed
if:
${{
always() &&
needs.lint.result == 'failure' &&
github.repository == 'AdguardTeam/AdguardFilters' &&
(
github.event_name == 'push' ||
github.event.pull_request.head.repo.full_name == github.repository
)
}}
steps:
- uses: slackapi/slack-github-action@v4
with:
webhook: ${{ secrets.SLACK_WEBHOOK_URL }}
webhook-type: incoming-webhook
payload: |
text: "❌ AGLint failed"
attachments:
- color: "danger"
fields:
- title: "Workflow"
value: "${{ github.workflow }}"
short: true
- title: "Repo"
value: "<${{ github.server_url }}/${{ github.repository }}|${{ github.repository }}>"
short: true
- title: "Message"
value: "${{ github.event.head_commit.message }}"
short: false
- title: "Commit"
value: "<${{ github.server_url }}/${{ github.repository }}/commit/${{ github.sha }}|${{ github.sha }}>"
short: true
- title: "Author"
value: "${{ github.actor }}"
short: true
- title: "Event"
value: "${{ github.event_name }}"
short: true
- title: "Ref"
value: "${{ github.ref }}"
short: true
- title: "Job"
value: "aglint"
short: true