-
-
Notifications
You must be signed in to change notification settings - Fork 2
138 lines (129 loc) · 4.35 KB
/
lint-datapack.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
134
135
136
137
138
# kics-scan disable=555ab8f9-2001-455e-a077-f2d0f41e2fb9
---
name: Datapack Linting
on:
push:
pull_request:
env:
AUTO_FIX: true
APPLY_FIXES: all
APPLY_FIXES_EVENT: all
APPLY_FIXES_MODE: commit
concurrency:
group: ${{ github.ref }}-${{ github.workflow }}
cancel-in-progress: true
permissions:
contents: write
pull-requests: write
issues: write
jobs:
megalinter:
name: MegaLinter
runs-on: ubuntu-latest
env:
MEGALINTER_CONFIG: .github/linters/.mega-linter.yml
CLEAR_REPORT_FOLDER: true
VALIDATE_ALL_CODEBASE: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
HEAD_COMMIT_MESSAGE: ${{ github.event.head_commit.message }}
steps:
- name: Get GitHub App token
id: app-token
uses: tibdex/github-app-token@v1
with:
app_id: ${{ secrets.GH_APP_ID }}
private_key: ${{ secrets.GH_APP_PRIVATE_KEY }}
- name: Checkout Code
uses: actions/checkout@v4
with:
token: ${{ steps['app-token'].outputs.token || secrets.GITHUB_TOKEN }}
fetch-depth: 0
- name: MegaLinter
id: ml
uses: oxsecurity/megalinter@v8
- name: Archive production artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: MegaLinter reports
path:
|
megalinter-reports
mega-linter.log
- name: Create Pull Request with applied fixes
id: cpr
if:
failure() &&
steps.ml.outputs.has_updated_sources == 1 &&
(
env.APPLY_FIXES_EVENT == 'all' ||
env.APPLY_FIXES_EVENT == github.event_name
) &&
env.APPLY_FIXES_MODE == 'pull_request' &&
(
github.event_name == 'push' ||
github.event.pull_request.head.repo.full_name == github.repository
) &&
!contains(env.HEAD_COMMIT_MESSAGE, 'skip fix')
uses: peter-evans/create-pull-request@v6
with:
token: ${{ steps['app-token'].outputs.token }}
commit-message: "NO-ISSUE Fix Apply linters fixes"
title: "[Fix] Apply linters automatic fixes"
labels: bot
base: ${{ github.head_ref }}
- name: Create PR output
if:
failure() &&
steps.ml.outputs.has_updated_sources == 1 &&
(
env.APPLY_FIXES_EVENT == 'all' ||
env.APPLY_FIXES_EVENT == github.event_name
) &&
env.APPLY_FIXES_MODE == 'pull_request' &&
(
github.event_name == 'push' ||
github.event.pull_request.head.repo.full_name == github.repository
) &&
!contains(env.HEAD_COMMIT_MESSAGE, 'skip fix')
run:
|
echo "Pull Request Number - ${{ steps.cpr.outputs['pull-request-number'] }}"
echo "Pull Request URL - ${{ steps.cpr.outputs['pull-request-url'] }}"
- name: Prepare commit
if:
failure() &&
steps.ml.outputs.has_updated_sources == 1 &&
(
env.APPLY_FIXES_EVENT == 'all' ||
env.APPLY_FIXES_EVENT == github.event_name
) &&
env.APPLY_FIXES_MODE == 'commit' &&
github.ref != 'refs/heads/main' &&
(
github.event_name == 'push' ||
github.event.pull_request.head.repo.full_name == github.repository
) &&
!contains(env.HEAD_COMMIT_MESSAGE, 'skip fix')
run: sudo chown -Rc $UID .git/
- name: Commit and push applied linter fixes
if:
failure() &&
steps.ml.outputs.has_updated_sources == 1 &&
(
env.APPLY_FIXES_EVENT == 'all' ||
env.APPLY_FIXES_EVENT == github.event_name
) &&
env.APPLY_FIXES_MODE == 'commit' &&
github.ref != 'refs/heads/main' &&
(
github.event_name == 'push' ||
github.event.pull_request.head.repo.full_name == github.repository
) &&
!contains(env.HEAD_COMMIT_MESSAGE, 'skip fix')
uses: stefanzweifel/git-auto-commit-action@v4
with:
token: ${{ steps['app-token'].outputs.token }}
branch: ${{ github.event.pull_request.head.ref || github.head_ref || github.ref }}
commit_message: "NO-ISSUE Fix Apply linters fixes"
commit_user_name: linter-bot
commit_user_email: [email protected]