-
Notifications
You must be signed in to change notification settings - Fork 22
70 lines (62 loc) · 3.13 KB
/
build.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
name: Build
on:
pull_request:
push:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
with:
lfs: 'true'
- name: Check LFS file (install git lfs and commit screenshots again if failing)
run: git lfs fsck --pointers
- name: set up JDK 18
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 18
- name: ktlint
run: ./gradlew lintKotlin
- name: Tests & Detekt & Android lint
run: ./gradlew :catalog:assembleDebug lintDebug :ui:detektAndroidDebug :ui:testDebugUnitTest :lint:test
- name: Run Screenshot Tests
run: ./gradlew :ui:verifyPaparazziDebug
- uses: yutailang0119/[email protected]
name: App Lint errors to annotations
if: ${{ failure() }}
continue-on-error: true # lint may be ok
with:
xml_path: app/build/reports/lint-results-debug.xml
- uses: yutailang0119/[email protected]
name: Lib Lint errors to annotations
if: ${{ failure() }}
continue-on-error: true # lint may be ok
with:
xml_path: lib/build/reports/lint-results-debug.xml
- name: KTLint errors to annotations
if: ${{ failure() }}
run: |
jq --raw-output '[.[] | ({ f: .file } + ( .errors[] | { l: .line, c: .column, m: .message, r: .rule } )) | "::error file=catalog/\(.f),line=\(.l),col=\(.c)::\(.m) [\(.r)]" ] | join("\n")' catalog/build/reports/ktlint/main-lint.json || true
jq --raw-output '[.[] | ({ f: .file } + ( .errors[] | { l: .line, c: .column, m: .message, r: .rule } )) | "::error file=generator/\(.f),line=\(.l),col=\(.c)::\(.m) [\(.r)]" ] | join("\n")' generator/build/reports/ktlint/main-lint.json || true
jq --raw-output '[.[] | ({ f: .file } + ( .errors[] | { l: .line, c: .column, m: .message, r: .rule } )) | "::error file=icons/\(.f),line=\(.l),col=\(.c)::\(.m) [\(.r)]" ] | join("\n")' icons/build/reports/ktlint/main-lint.json || true
jq --raw-output '[.[] | ({ f: .file } + ( .errors[] | { l: .line, c: .column, m: .message, r: .rule } )) | "::error file=illustrations/\(.f),line=\(.l),col=\(.c)::\(.m) [\(.r)]" ] | join("\n")' illustrations/build/reports/ktlint/main-lint.json || true
jq --raw-output '[.[] | ({ f: .file } + ( .errors[] | { l: .line, c: .column, m: .message, r: .rule } )) | "::error file=ui/\(.f),line=\(.l),col=\(.c)::\(.m) [\(.r)]" ] | join("\n")' ui/build/reports/ktlint/main-lint.json || true
- uses: actions/upload-artifact@v4
if: ${{ failure() }}
with:
name: shots-results
path: ui/build/paparazzi/failures
- name: Build Dokka HTML
if: ${{ github.ref == 'refs/heads/main' }}
run: |
./gradlew :dokkaHtmlMultiModule --no-configuration-cache
- name: Deploy Dokka HTML
uses: peaceiris/actions-gh-pages@v3
if: ${{ github.ref == 'refs/heads/main' }}
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./build/dokka/htmlMultiModule