This repository has been archived by the owner on Aug 7, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 41
146 lines (121 loc) · 4.06 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
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
142
143
144
145
146
name: CI
on:
push:
branches:
- develop
paths-ignore:
- '**.md'
pull_request:
paths-ignore:
- '**.md'
jobs:
build:
# Skip build if head commit contains 'skip ci'
if: "!contains(github.event.head_commit.message, 'skip ci')"
runs-on: ubuntu-latest
env:
JAVA_TOOL_OPTIONS: -Xmx5120m
GRADLE_OPTS: -Dorg.gradle.daemon=false -Dorg.gradle.workers.max=2 -Dkotlin.compiler.execution.strategy=in-process
TERM: dumb
steps:
- uses: actions/checkout@v2
- name: set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 11
- name: Generate cache key
run: ./checksum.sh checksum.txt
- uses: actions/cache@v2
with:
path: |
~/.gradle/caches/modules-*
~/.gradle/caches/jars-*
~/.gradle/caches/build-cache-*
key: gradle-${{ hashFiles('checksum.txt') }}
- name: Build, lint and spotless
run: ./gradlew spotlessCheck assemble lintDebug apiCheck --scan
test:
runs-on: macOS-latest
needs: build
strategy:
matrix:
api-level: [23, 26, 29]
env:
JAVA_TOOL_OPTIONS: -Xmx3072m
GRADLE_OPTS: -Dorg.gradle.daemon=false -Dorg.gradle.workers.max=2 -Dkotlin.compiler.execution.strategy=in-process
TERM: dumb
steps:
- uses: actions/checkout@v2
- name: set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 11
- name: Generate cache key
run: ./checksum.sh checksum.txt
- uses: actions/cache@v2
with:
path: |
~/.gradle/caches/modules-*
~/.gradle/caches/jars-*
~/.gradle/caches/build-cache-*
key: gradle-${{ hashFiles('checksum.txt') }}
- name: Run tests
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: ${{ matrix.api-level }}
script: ./gradlew connectedCheck
- name: Copy test results
if: always()
run: |
mkdir -p junit
find . -type f -regex ".*/build/test-results/.*xml" -exec cp {} junit/ \;
- name: Upload test results
if: always()
uses: actions/upload-artifact@v1
with:
name: junit-results
path: junit
deploy:
if: github.event_name == 'push' # only deploy for pushed commits (not PRs)
runs-on: ubuntu-latest
needs: [build, test]
env:
JAVA_TOOL_OPTIONS: -Xmx5120m
GRADLE_OPTS: -Dorg.gradle.daemon=false -Dorg.gradle.workers.max=2 -Dkotlin.compiler.execution.strategy=in-process
TERM: dumb
steps:
- uses: actions/checkout@v2
- name: set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 11
- name: Generate cache key
run: ./checksum.sh checksum.txt
- uses: actions/cache@v2
with:
path: |
~/.gradle/caches/modules-*
~/.gradle/caches/jars-*
~/.gradle/caches/build-cache-*
key: gradle-${{ hashFiles('checksum.txt') }}
- name: Remove current local Maven repo if it exists
continue-on-error: true
working-directory: ~/.m2
run: rm -rf *
- name: Build docs
# We manually run assemble & dokka before uploadArchives. If we only run uploadArchives,
# the assemble and dokka tasks are run interleaved on each module, which can cause
# connection timeouts while uploading (since we need to wait for assemble+dokka to finish).
# By front-loading the assemble+dokka tasks, the upload below is much quicker.
run: ./gradlew assembleRelease dokkaGfm
- name: Install to local Maven repo
run: ./gradlew installArchives
- uses: actions/upload-artifact@v2
with:
name: maven-release
path: ~/.m2/repository
# - name: Deploy to GitHub packages
# run: ./gradlew uploadArchives --no-parallel
# env:
# SONATYPE_NEXUS_USERNAME: ${{ github.repository_owner }}
# SONATYPE_NEXUS_PASSWORD: ${{ secrets.GITHUB_TOKEN }}