Skip to content

Commit de33cdf

Browse files
authored
Merge pull request #85 from what3words/staging
3.0.0
2 parents 909253a + be4d941 commit de33cdf

22 files changed

+2633
-1488
lines changed

.github/workflows/BuildTest.yml

Lines changed: 0 additions & 65 deletions
This file was deleted.
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
name: Build, test and snapshot
2+
3+
on:
4+
push:
5+
branches:
6+
- 'task/**'
7+
- 'bug/**'
8+
- 'fix/**'
9+
- 'epic/**'
10+
pull_request:
11+
branches:
12+
- 'epic/**'
13+
types: [ closed ]
14+
15+
jobs:
16+
build_test:
17+
runs-on: ubuntu-latest
18+
steps:
19+
- name: Checkout code
20+
uses: actions/checkout@v4
21+
22+
- name: Enable KVM group perms
23+
run: |
24+
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
25+
sudo udevadm control --reload-rules
26+
sudo udevadm trigger --name-match=kvm
27+
ls /dev/kvm
28+
29+
- name: Setup Java 17
30+
uses: actions/setup-java@v4
31+
with:
32+
distribution: 'temurin'
33+
java-version: '17'
34+
35+
- name: Restore gradle.properties
36+
shell: bash
37+
run: |
38+
mkdir -p ~/.gradle/
39+
echo "GRADLE_USER_HOME=${HOME}/.gradle" >> $GITHUB_ENV
40+
41+
- name: Setup Gradle
42+
uses: gradle/actions/setup-gradle@v4
43+
44+
- name: Check for SNAPSHOT dependencies
45+
if: github.event_name == 'pull_request' && github.base_ref == 'staging'
46+
run: ./gradlew :lib:checkSnapshotDependencies
47+
48+
- name: Setup Android SDK
49+
uses: android-actions/setup-android@v3
50+
51+
- name: Accept licenses
52+
run: yes | sdkmanager --licenses || true
53+
54+
- name: Setup GMD
55+
run: ./gradlew :lib:pixel6Api33Setup
56+
--info
57+
--build-cache
58+
-Pandroid.experimental.testOptions.managedDevices.emulator.showKernelLogging=true
59+
-Pandroid.testoptions.manageddevices.emulator.gpu="swiftshader_indirect"
60+
61+
- name: Build lib and run instrumentation tests
62+
run: ./gradlew :lib:pixel6Api33DebugAndroidTest
63+
--build-cache
64+
-Pandroid.testoptions.manageddevices.emulator.gpu="swiftshader_indirect"
65+
-Pandroid.experimental.testOptions.managedDevices.emulator.showKernelLogging=true
66+
-Pandroid.experimental.androidTest.numManagedDeviceShards=1
67+
-Pandroid.experimental.testOptions.managedDevices.maxConcurrentDevices=1
68+
-Pandroid.experimental.testOptions.managedDevices.setupTimeoutMinutes=5
69+
70+
- name: Upload test results
71+
uses: actions/upload-artifact@v4
72+
with:
73+
name: test-results
74+
path: lib/build/outputs/androidTest-results
75+
76+
snapshot:
77+
# This job must explicitly depend on build_test
78+
needs: build_test
79+
# Run for direct commits to epic branches OR when PRs are merged into epic branches
80+
# AND only when build_test succeeds
81+
if: >
82+
success() &&
83+
((github.event_name == 'push' && startsWith(github.ref, 'refs/heads/epic/')) ||
84+
(github.event_name == 'pull_request' && github.event.action == 'closed' &&
85+
github.event.pull_request.merged == true && startsWith(github.base_ref, 'epic/')))
86+
runs-on: ubuntu-latest
87+
steps:
88+
- name: Checkout code
89+
uses: actions/checkout@v4
90+
91+
- name: Set up JDK
92+
uses: actions/setup-java@v3
93+
with:
94+
distribution: 'temurin'
95+
java-version: '17'
96+
97+
- name: Restore gradle.properties
98+
env:
99+
MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
100+
MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
101+
shell: bash
102+
run: |
103+
mkdir -p ~/.gradle/
104+
echo "GRADLE_USER_HOME=${HOME}/.gradle" >> $GITHUB_ENV
105+
echo "MAVEN_CENTRAL_USERNAME=${MAVEN_CENTRAL_USERNAME}">> ~/.gradle/gradle.properties
106+
echo "MAVEN_CENTRAL_PASSWORD=${MAVEN_CENTRAL_PASSWORD}">> ~/.gradle/gradle.properties
107+
echo "IS_SNAPSHOT_RELEASE=true">> ~/.gradle/gradle.properties
108+
cat ~/.gradle/gradle.properties
109+
110+
- name: Setup Gradle with caching
111+
uses: gradle/actions/setup-gradle@v4
112+
with:
113+
cache-read-only: false
114+
115+
- name: Setup Android SDK
116+
uses: android-actions/setup-android@v3
117+
118+
- name: Publish SNAPSHOT
119+
run: ./gradlew lib:publishMavenPublicationToSonatypeSnapshotsRepository
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
name: Publish Release
2+
3+
on:
4+
push:
5+
branches:
6+
- 'staging'
7+
pull_request:
8+
branches:
9+
- 'staging'
10+
types: [closed]
11+
workflow_dispatch: # Allow manual triggering
12+
13+
jobs:
14+
publish:
15+
runs-on: ubuntu-latest
16+
steps:
17+
- name: Checkout code
18+
uses: actions/checkout@v4
19+
with:
20+
fetch-depth: 0 # Fetch all history for proper versioning
21+
22+
- name: Set up JDK 17
23+
uses: actions/setup-java@v4
24+
with:
25+
distribution: 'temurin'
26+
java-version: '17'
27+
cache: 'gradle'
28+
29+
- name: Set up Gradle
30+
uses: gradle/actions/setup-gradle@v3
31+
32+
- name: Create Gradle Properties
33+
env:
34+
MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
35+
MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
36+
W3W_GPG_SECRET_KEY: ${{ secrets.W3W_GPG_SECRET_KEY }}
37+
W3W_GPG_PUBLIC_KEY: ${{ secrets.W3W_GPG_PUBLIC_KEY }}
38+
W3W_GPG_PASSPHRASE: ${{ secrets.W3W_GPG_PASSPHRASE }}
39+
W3W_GITHUB_TOKEN: ${{ secrets.W3W_GITHUB_TOKEN }}
40+
shell: bash
41+
run: |
42+
mkdir -p ~/.gradle/
43+
echo "GRADLE_USER_HOME=${HOME}/.gradle" >> $GITHUB_ENV
44+
echo "MAVEN_CENTRAL_USERNAME=${MAVEN_CENTRAL_USERNAME}" >> ~/.gradle/gradle.properties
45+
echo "MAVEN_CENTRAL_PASSWORD=${MAVEN_CENTRAL_PASSWORD}" >> ~/.gradle/gradle.properties
46+
echo "W3W_GITHUB_TOKEN=${W3W_GITHUB_TOKEN}" >> ~/.gradle/gradle.properties
47+
echo "W3W_GPG_SECRET_KEY=${W3W_GPG_SECRET_KEY}" >> ~/.gradle/gradle.properties
48+
echo "W3W_GPG_PUBLIC_KEY=${W3W_GPG_PUBLIC_KEY}" >> ~/.gradle/gradle.properties
49+
echo "W3W_GPG_PASSPHRASE=${W3W_GPG_PASSPHRASE}" >> ~/.gradle/gradle.properties
50+
cat ~/.gradle/gradle.properties
51+
52+
- name: Clean build
53+
run: ./gradlew clean
54+
55+
- name: Publish to local staging repository
56+
run: ./gradlew :lib:publishMavenPublicationToStagingLocalRepository
57+
58+
- name: Release with JReleaser
59+
run: ./gradlew :lib:jreleaserFullRelease
60+
env:
61+
JRELEASER_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
62+
JRELEASER_GIT_ROOT_SEARCH: true
63+
64+
- name: JReleaser output
65+
if: always()
66+
uses: actions/upload-artifact@v4
67+
with:
68+
name: jreleaser-release
69+
path: |
70+
lib/build/jreleaser/trace.log
71+
lib/build/jreleaser/output.properties
72+
73+
- name: Upload staging directory
74+
uses: actions/upload-artifact@v4
75+
with:
76+
name: staging-deploy
77+
path: lib/build/staging-deploy/

.github/workflows/Release.yml

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

build.gradle.kts

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,21 @@
11
buildscript {
22
dependencies {
3-
classpath("org.jacoco:org.jacoco.core:0.8.9")
4-
classpath("com.android.tools.build:gradle:8.5.0")
3+
classpath(libs.ktlint.gradle)
4+
classpath(libs.sonarqube.gradle.plugin)
5+
classpath(libs.kotlin.gradle.plugin)
6+
classpath(libs.jacoco.gradle.plugin)
57
}
68
}
9+
710
plugins {
8-
id("com.android.library") version "8.5.0" apply false
9-
id("org.jetbrains.kotlin.android") version "1.8.20" apply false
10-
id("org.jetbrains.kotlin.plugin.parcelize") version "1.8.20" apply false
11-
id("com.autonomousapps.dependency-analysis") version "1.20.0"
12-
id("org.jetbrains.kotlin.plugin.serialization") version "1.8.20" apply false
11+
alias(libs.plugins.android.library) apply false
12+
alias(libs.plugins.kotlin.android) apply false
13+
alias(libs.plugins.compose.compiler) apply false
14+
alias(libs.plugins.gradle.ktlint) apply false
15+
alias(libs.plugins.jreleaser) apply false
16+
alias(libs.plugins.autonomousapps.analysis)
17+
}
18+
19+
tasks.register<Delete>("clean").configure {
20+
delete(rootProject.layout.buildDirectory)
1321
}

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,4 @@ kotlin.code.style=official
2222
# thereby reducing the size of the R class for that library
2323
android.nonTransitiveRClass=true
2424
android.nonFinalResIds=false
25-
LIBRARY_VERSION = 2.0.1
25+
LIBRARY_VERSION = 3.0.0

0 commit comments

Comments
 (0)