Skip to content

Commit 96e78fd

Browse files
authored
Merge pull request #123 from what3words/staging
2.0.0
2 parents 16a1326 + e9ae7a6 commit 96e78fd

File tree

91 files changed

+14712
-2443
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

91 files changed

+14712
-2443
lines changed

.circleci/config.yml

Lines changed: 0 additions & 87 deletions
This file was deleted.
Lines changed: 200 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,200 @@
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+
detect-changes:
17+
runs-on: ubuntu-latest
18+
outputs:
19+
lib-changed: ${{ steps.changes.outputs.lib }}
20+
lib-compose-changed: ${{ steps.changes.outputs.lib-compose }}
21+
22+
steps:
23+
- uses: actions/checkout@v3
24+
with:
25+
fetch-depth: 0
26+
27+
- name: Get changed files
28+
id: changes
29+
run: |
30+
# Get the last successful commit on the default branch
31+
git fetch origin main
32+
LAST_SUCCESSFUL_COMMIT=$(git rev-parse origin/main)
33+
34+
# Compare changes between current commit and last successful commit
35+
if git diff --name-only HEAD $LAST_SUCCESSFUL_COMMIT | grep -q "^lib/"; then
36+
echo "lib=true" >> $GITHUB_OUTPUT
37+
else
38+
echo "lib=false" >> $GITHUB_OUTPUT
39+
fi
40+
41+
if git diff --name-only HEAD $LAST_SUCCESSFUL_COMMIT | grep -q "^lib-compose/"; then
42+
echo "lib-compose=true" >> $GITHUB_OUTPUT
43+
else
44+
echo "lib-compose=false" >> $GITHUB_OUTPUT
45+
fi
46+
47+
build_test:
48+
runs-on: ubuntu-latest
49+
steps:
50+
- name: Checkout code
51+
uses: actions/checkout@v4
52+
53+
- name: Enable KVM group perms
54+
run: |
55+
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
56+
sudo udevadm control --reload-rules
57+
sudo udevadm trigger --name-match=kvm
58+
ls /dev/kvm
59+
60+
- name: Setup Java 17
61+
uses: actions/setup-java@v4
62+
with:
63+
distribution: 'temurin'
64+
java-version: '17'
65+
66+
- name: Restore gradle.properties
67+
env:
68+
69+
MAPBOX_DOWNLOADS_TOKEN: ${{ secrets.MAPBOX_DOWNLOADS_TOKEN }}
70+
shell: bash
71+
run: |
72+
mkdir -p ~/.gradle/
73+
echo "GRADLE_USER_HOME=${HOME}/.gradle" >> $GITHUB_ENV
74+
echo "MAPBOX_DOWNLOADS_TOKEN=${MAPBOX_DOWNLOADS_TOKEN}">> ~/.gradle/gradle.properties
75+
76+
- name: Setup Gradle
77+
uses: gradle/actions/setup-gradle@v4
78+
79+
- name: Check for SNAPSHOT dependencies
80+
if: github.event_name == 'pull_request' && github.base_ref == 'staging'
81+
run: ./gradlew :lib:checkSnapshotDependencies
82+
83+
- name: Setup Android SDK
84+
uses: android-actions/setup-android@v3
85+
86+
- name: Accept licenses
87+
run: yes | sdkmanager --licenses || true
88+
89+
- name: Run Lib Unit Test
90+
run: ./gradlew lib:testDebugUnitTest
91+
92+
- name: Upload Lib Test Results
93+
uses: actions/upload-artifact@v4
94+
with:
95+
name: lib-test-results
96+
path: lib/build/test-results/testDebugUnitTest
97+
98+
- name: Run Lib Compose Unit Test
99+
run: ./gradlew lib-compose:jacocoTestReport
100+
101+
- name: Upload Lib Compose Test Results
102+
uses: actions/upload-artifact@v4
103+
with:
104+
name: lib-compose-test-results
105+
path: lib-compose/build/reports/jacoco/jacocoTestReport
106+
107+
snapshot-lib:
108+
# This job must explicitly depend on build_test and detect-changes
109+
needs: [build_test, detect-changes]
110+
# Run for direct commits to epic branches OR when PRs are merged into epic branches
111+
# AND only when build_test succeeds AND lib has changed
112+
if: >
113+
success() &&
114+
needs.detect-changes.outputs.lib-changed == 'true' &&
115+
((github.event_name == 'push' && startsWith(github.ref, 'refs/heads/epic/')) ||
116+
(github.event_name == 'pull_request' && github.event.action == 'closed' &&
117+
github.event.pull_request.merged == true && startsWith(github.base_ref, 'epic/')))
118+
runs-on: ubuntu-latest
119+
steps:
120+
- name: Checkout code
121+
uses: actions/checkout@v4
122+
123+
- name: Set up JDK
124+
uses: actions/setup-java@v3
125+
with:
126+
distribution: 'temurin'
127+
java-version: '17'
128+
129+
- name: Restore gradle.properties
130+
env:
131+
MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
132+
MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
133+
MAPBOX_DOWNLOADS_TOKEN: ${{ secrets.MAPBOX_DOWNLOADS_TOKEN }}
134+
shell: bash
135+
run: |
136+
mkdir -p ~/.gradle/
137+
echo "GRADLE_USER_HOME=${HOME}/.gradle" >> $GITHUB_ENV
138+
echo "MAVEN_CENTRAL_USERNAME=${MAVEN_CENTRAL_USERNAME}">> ~/.gradle/gradle.properties
139+
echo "MAVEN_CENTRAL_PASSWORD=${MAVEN_CENTRAL_PASSWORD}">> ~/.gradle/gradle.properties
140+
echo "MAPBOX_DOWNLOADS_TOKEN=${MAPBOX_DOWNLOADS_TOKEN}">> ~/.gradle/gradle.properties
141+
echo "IS_SNAPSHOT_RELEASE=true">> ~/.gradle/gradle.properties
142+
cat ~/.gradle/gradle.properties
143+
144+
- name: Setup Gradle with caching
145+
uses: gradle/actions/setup-gradle@v4
146+
with:
147+
cache-read-only: false
148+
149+
- name: Setup Android SDK
150+
uses: android-actions/setup-android@v3
151+
152+
- name: Publish SNAPSHOT
153+
run: ./gradlew lib:publishMavenPublicationToSonatypeSnapshotsRepository
154+
snapshot-compose-lib:
155+
# This job must explicitly depend on build_test and detect-changes
156+
needs: [build_test, detect-changes]
157+
# Run for direct commits to epic branches OR when PRs are merged into epic branches
158+
# AND only when build_test succeeds AND lib-compose has changed
159+
if: >
160+
success() &&
161+
needs.detect-changes.outputs.lib-compose-changed == 'true' &&
162+
((github.event_name == 'push' && startsWith(github.ref, 'refs/heads/epic/')) ||
163+
(github.event_name == 'pull_request' && github.event.action == 'closed' &&
164+
github.event.pull_request.merged == true && startsWith(github.base_ref, 'epic/')))
165+
runs-on: ubuntu-latest
166+
steps:
167+
- name: Checkout code
168+
uses: actions/checkout@v4
169+
170+
- name: Set up JDK
171+
uses: actions/setup-java@v3
172+
with:
173+
distribution: 'temurin'
174+
java-version: '17'
175+
176+
- name: Restore gradle.properties
177+
env:
178+
MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
179+
MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
180+
MAPBOX_DOWNLOADS_TOKEN: ${{ secrets.MAPBOX_DOWNLOADS_TOKEN }}
181+
shell: bash
182+
run: |
183+
mkdir -p ~/.gradle/
184+
echo "GRADLE_USER_HOME=${HOME}/.gradle" >> $GITHUB_ENV
185+
echo "MAVEN_CENTRAL_USERNAME=${MAVEN_CENTRAL_USERNAME}">> ~/.gradle/gradle.properties
186+
echo "MAVEN_CENTRAL_PASSWORD=${MAVEN_CENTRAL_PASSWORD}">> ~/.gradle/gradle.properties
187+
echo "MAPBOX_DOWNLOADS_TOKEN=${MAPBOX_DOWNLOADS_TOKEN}">> ~/.gradle/gradle.properties
188+
echo "IS_SNAPSHOT_RELEASE=true">> ~/.gradle/gradle.properties
189+
cat ~/.gradle/gradle.properties
190+
191+
- name: Setup Gradle with caching
192+
uses: gradle/actions/setup-gradle@v4
193+
with:
194+
cache-read-only: false
195+
196+
- name: Setup Android SDK
197+
uses: android-actions/setup-android@v3
198+
199+
- name: Publish SNAPSHOT
200+
run: ./gradlew lib-compose:publishMavenPublicationToSonatypeSnapshotsRepository

0 commit comments

Comments
 (0)