Skip to content

Commit 98def5a

Browse files
authored
Merge pull request #1061 from mikepenz/ci/sarif-lint
ci: migrate lint reporting to SARIF and remove Danger
2 parents 7776187 + 6d110bf commit 98def5a

6 files changed

Lines changed: 137 additions & 179 deletions

File tree

.github/workflows/ci.yml

Lines changed: 86 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -11,25 +11,28 @@ jobs:
1111
build:
1212
name: Build
1313
runs-on: ubuntu-latest
14+
permissions:
15+
contents: read
16+
security-events: write
1417
steps:
1518
- name: Checkout
16-
uses: actions/checkout@v3
19+
uses: actions/checkout@v6
1720
with:
1821
fetch-depth: 100
1922

20-
- uses: actions/setup-java@v3
23+
- uses: actions/setup-java@v5
2124
with:
22-
java-version: '11'
2325
distribution: 'zulu'
26+
java-version: '17'
2427

2528
- name: Validate gradle wrapper
26-
uses: gradle/wrapper-validation-action@v1
29+
uses: gradle/actions/wrapper-validation@v6
2730

2831
- name: Copy CI gradle.properties
2932
run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties
3033

31-
- name: Gradle Build Cache
32-
uses: gradle/gradle-build-action@v2
34+
- name: Setup Gradle
35+
uses: gradle/actions/setup-gradle@v6
3336

3437
- name: Build Debug
3538
run: ./gradlew clean app:assembleDebug
@@ -38,24 +41,86 @@ jobs:
3841
if: github.event_name == 'pull_request'
3942
run: ./gradlew lintDebug
4043

41-
- name: Detekt
42-
if: github.event_name == 'pull_request'
43-
run: ./gradlew detekt
44+
- name: Upload Lint SARIF (fastadapter)
45+
if: (success() || failure()) && github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == false && hashFiles('fastadapter/build/reports/lint-results-debug.sarif') != ''
46+
uses: github/codeql-action/upload-sarif@v4
47+
with:
48+
sarif_file: 'fastadapter/build/reports/lint-results-debug.sarif'
49+
category: android-lint-fastadapter
4450

45-
- name: Setup Ruby
46-
if: github.event_name == 'pull_request'
47-
uses: ruby/setup-ruby@v1
51+
- name: Upload Lint SARIF (fastadapter-extensions-binding)
52+
if: (success() || failure()) && github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == false && hashFiles('fastadapter-extensions-binding/build/reports/lint-results-debug.sarif') != ''
53+
uses: github/codeql-action/upload-sarif@v4
54+
with:
55+
sarif_file: 'fastadapter-extensions-binding/build/reports/lint-results-debug.sarif'
56+
category: android-lint-fastadapter-extensions-binding
57+
58+
- name: Upload Lint SARIF (fastadapter-extensions-diff)
59+
if: (success() || failure()) && github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == false && hashFiles('fastadapter-extensions-diff/build/reports/lint-results-debug.sarif') != ''
60+
uses: github/codeql-action/upload-sarif@v4
4861
with:
49-
ruby-version: '3.0'
50-
bundler-cache: true
62+
sarif_file: 'fastadapter-extensions-diff/build/reports/lint-results-debug.sarif'
63+
category: android-lint-fastadapter-extensions-diff
5164

52-
- name: Run Danger
65+
- name: Upload Lint SARIF (fastadapter-extensions-drag)
66+
if: (success() || failure()) && github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == false && hashFiles('fastadapter-extensions-drag/build/reports/lint-results-debug.sarif') != ''
67+
uses: github/codeql-action/upload-sarif@v4
68+
with:
69+
sarif_file: 'fastadapter-extensions-drag/build/reports/lint-results-debug.sarif'
70+
category: android-lint-fastadapter-extensions-drag
71+
72+
- name: Upload Lint SARIF (fastadapter-extensions-expandable)
73+
if: (success() || failure()) && github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == false && hashFiles('fastadapter-extensions-expandable/build/reports/lint-results-debug.sarif') != ''
74+
uses: github/codeql-action/upload-sarif@v4
75+
with:
76+
sarif_file: 'fastadapter-extensions-expandable/build/reports/lint-results-debug.sarif'
77+
category: android-lint-fastadapter-extensions-expandable
78+
79+
- name: Upload Lint SARIF (fastadapter-extensions-paged)
80+
if: (success() || failure()) && github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == false && hashFiles('fastadapter-extensions-paged/build/reports/lint-results-debug.sarif') != ''
81+
uses: github/codeql-action/upload-sarif@v4
82+
with:
83+
sarif_file: 'fastadapter-extensions-paged/build/reports/lint-results-debug.sarif'
84+
category: android-lint-fastadapter-extensions-paged
85+
86+
- name: Upload Lint SARIF (fastadapter-extensions-scroll)
87+
if: (success() || failure()) && github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == false && hashFiles('fastadapter-extensions-scroll/build/reports/lint-results-debug.sarif') != ''
88+
uses: github/codeql-action/upload-sarif@v4
89+
with:
90+
sarif_file: 'fastadapter-extensions-scroll/build/reports/lint-results-debug.sarif'
91+
category: android-lint-fastadapter-extensions-scroll
92+
93+
- name: Upload Lint SARIF (fastadapter-extensions-swipe)
94+
if: (success() || failure()) && github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == false && hashFiles('fastadapter-extensions-swipe/build/reports/lint-results-debug.sarif') != ''
95+
uses: github/codeql-action/upload-sarif@v4
96+
with:
97+
sarif_file: 'fastadapter-extensions-swipe/build/reports/lint-results-debug.sarif'
98+
category: android-lint-fastadapter-extensions-swipe
99+
100+
- name: Upload Lint SARIF (fastadapter-extensions-ui)
101+
if: (success() || failure()) && github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == false && hashFiles('fastadapter-extensions-ui/build/reports/lint-results-debug.sarif') != ''
102+
uses: github/codeql-action/upload-sarif@v4
103+
with:
104+
sarif_file: 'fastadapter-extensions-ui/build/reports/lint-results-debug.sarif'
105+
category: android-lint-fastadapter-extensions-ui
106+
107+
- name: Upload Lint SARIF (fastadapter-extensions-utils)
108+
if: (success() || failure()) && github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == false && hashFiles('fastadapter-extensions-utils/build/reports/lint-results-debug.sarif') != ''
109+
uses: github/codeql-action/upload-sarif@v4
110+
with:
111+
sarif_file: 'fastadapter-extensions-utils/build/reports/lint-results-debug.sarif'
112+
category: android-lint-fastadapter-extensions-utils
113+
114+
- name: Upload Lint SARIF (app)
115+
if: (success() || failure()) && github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == false && hashFiles('app/build/reports/lint-results-debug.sarif') != ''
116+
uses: github/codeql-action/upload-sarif@v4
117+
with:
118+
sarif_file: 'app/build/reports/lint-results-debug.sarif'
119+
category: android-lint-app
120+
121+
- name: Detekt
53122
if: github.event_name == 'pull_request'
54-
run: |
55-
gem install danger
56-
bundle exec danger --dangerfile=Dangerfile --danger_id=danger-pr
57-
env:
58-
DANGER_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
123+
run: ./gradlew detekt
59124

60125
- name: Prepare Keystore and Local.
61126
if: startsWith(github.ref, 'refs/tags/')
@@ -105,7 +170,7 @@ jobs:
105170
find . -name "*.aab" -type f -exec cp {} "artifacts" \;
106171
107172
- name: Archive Artifacts
108-
uses: actions/upload-artifact@v3
173+
uses: actions/upload-artifact@v7
109174
with:
110175
name: "App-Artifacts"
111176
path: artifacts/*

.github/workflows/pr-checks.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
name: PR Checks
2+
3+
on:
4+
pull_request:
5+
types:
6+
- opened
7+
- synchronize
8+
- reopened
9+
- labeled
10+
- unlabeled
11+
- edited
12+
13+
permissions:
14+
pull-requests: read
15+
16+
jobs:
17+
quality-gates:
18+
name: Quality Gates
19+
runs-on: ubuntu-latest
20+
steps:
21+
- name: PR Quality Gates
22+
uses: actions/github-script@v8
23+
with:
24+
script: |
25+
const { data: pr } = await github.rest.pulls.get({
26+
owner: context.repo.owner,
27+
repo: context.repo.repo,
28+
pull_number: context.issue.number
29+
});
30+
const labels = pr.labels.map(l => l.name);
31+
if (labels.some(l => l.includes('DO NOT MERGE')))
32+
core.setFailed('PR specifies label DO NOT MERGE');
33+
if (labels.some(l => l.includes('Engineers at work')) || pr.title.includes('[WIP]'))
34+
core.warning('PR is marked as Work in Progress');
35+
if (pr.additions + pr.deletions > 5000)
36+
core.warning('Big PR');

Dangerfile

Lines changed: 0 additions & 48 deletions
This file was deleted.

Gemfile

Lines changed: 0 additions & 9 deletions
This file was deleted.

Gemfile.lock

Lines changed: 0 additions & 101 deletions
This file was deleted.

build.gradle

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,5 +63,20 @@ subprojects {
6363
dependencies {
6464
detektPlugins "io.gitlab.arturbosch.detekt:detekt-formatting:${versions.detekt}"
6565
}
66+
67+
plugins.withId('com.android.library') {
68+
android {
69+
lintOptions {
70+
sarifReport true
71+
}
72+
}
73+
}
74+
plugins.withId('com.android.application') {
75+
android {
76+
lintOptions {
77+
sarifReport true
78+
}
79+
}
80+
}
6681
}
6782

0 commit comments

Comments
 (0)