-
-
Notifications
You must be signed in to change notification settings - Fork 2
133 lines (133 loc) · 5.34 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
# 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: pull_request
concurrency:
group: ${{ github.ref }}-${{ github.workflow }}
cancel-in-progress: true
permissions:
contents: write
issues: write
pull-requests: write
jobs:
megalinter:
name: MegaLinter
runs-on: ubuntu-latest
env:
DISABLE_LINTERS: "SPELL_CSPELL,SPELL_LYCHEE,MARKDOWN_MARKDOWN_LINK_CHECK"
DISABLE_ERRORS_LINTERS: "JSON_V8R"
LINTER_RULES_PATH: .github/linters
CLEAR_REPORT_FOLDER: true
FILTER_REGEX_EXCLUDE: '^(.*/)?_.*$'
VALIDATE_ALL_CODEBASE: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
HEAD_COMMIT_MESSAGE: ${{ github.event.head_commit.message }}
steps:
- uses: actions/create-github-app-token@v1
id: generate-token
with:
app-id: ${{ secrets.APP_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}
- name: Checkout Code
uses: actions/checkout@v4
with:
token: ${{ steps.generate-token.outputs.token }}
# token: ${{ secrets.PAT || secrets.GITHUB_TOKEN }}
fetch-depth: 0
- name: MegaLinter
id: ml
uses: oxsecurity/megalinter@v8
- name: Archive production artifacts
if: success() || failure()
uses: actions/upload-artifact@v4
with:
name: MegaLinter reports
path: |
megalinter-reports
mega-linter.log
- name: Debug - Output values
if: always()
run: |
echo "has_updated_sources: ${{ steps.ml.outputs.has_updated_sources }}"
echo "APPLY_FIXES_EVENT: ${{ env.APPLY_FIXES_EVENT }}"
echo "APPLY_FIXES_MODE: ${{ env.APPLY_FIXES_MODE }}"
echo "github.ref: ${{ github.ref }}"
echo "event_name: ${{ github.event_name }}"
echo "HEAD_COMMIT_MESSAGE: ${{ env.HEAD_COMMIT_MESSAGE }}"
echo "pull_request.head.repo.full_name: ${{ github.event.pull_request.head.repo.full_name }}"
- name: Create Pull Request with applied fixes
id: cpr
if: 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.generate-token.outputs.token }}
# token: ${{ secrets.PAT || secrets.GITHUB_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: 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: 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: 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:
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]