-
Notifications
You must be signed in to change notification settings - Fork 0
141 lines (134 loc) · 3.81 KB
/
test.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
139
140
141
name: Kotlin SDK Test
on:
pull_request:
branches: [ main ]
paths-ignore:
- '**.md'
workflow_dispatch:
jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ macos-latest, ubuntu-latest, windows-latest ]
steps:
- uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: 17
distribution: zulu
- name: Cache Konan
uses: ./.github/actions/cache-konan
- name: Cache Gradle
uses: ./.github/actions/cache-gradle
- name: Run all tests
run: ./gradlew allTests --stacktrace
shell: bash
- name: Archive results
if: failure()
uses: actions/upload-artifact@v4
with:
name: test-results
path: build/reports/tests
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: 17
distribution: zulu
- name: Cache Konan
uses: ./.github/actions/cache-konan
- name: Cache Gradle
uses: ./.github/actions/cache-gradle
- name: Run format check
run: ./gradlew ktlintCheck --stacktrace
shell: bash
analysis:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: 17
distribution: zulu
- name: Cache Konan
uses: ./.github/actions/cache-konan
- name: Cache Gradle
uses: ./.github/actions/cache-gradle
- name: Run code analysis
run: ./gradlew detekt --stacktrace
shell: bash
- name: Upload SARIF file
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: build/reports/detekt/detekt.sarif
- name: Upload analysis report
uses: actions/upload-artifact@v4
with:
name: analysis-report
path: build/reports/detekt
coverage:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: 17
distribution: zulu
- name: Cache Konan
uses: ./.github/actions/cache-konan
- name: Cache Gradle
uses: ./.github/actions/cache-gradle
- name: Calculate coverage
run: ./gradlew koverXmlReport --stacktrace
shell: bash
- name: Upload coverage report
uses: actions/upload-artifact@v4
with:
name: coverage-report
path: build/reports/kover
upload-reports:
needs: [ test, analysis, coverage, lint ]
runs-on: ubuntu-latest
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BUILD_NUMBER: ${{ github.run_number }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: 17
distribution: zulu
- name: SonarCloud cache
uses: actions/cache@v4
with:
path: ~/.sonar/cache
key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar
- name: Cache Konan
uses: ./.github/actions/cache-konan
- name: Cache Gradle
uses: ./.github/actions/cache-gradle
- name: Download coverage report
uses: actions/download-artifact@v4
with:
name: coverage-report
path: build/reports/kover
- name: Download analysis report
uses: actions/download-artifact@v4
with:
name: analysis-report
path: build/reports/detekt
- name: Upload reports to SonarCloud
run: ./gradlew sonarqube --stacktrace
shell: bash