Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .claude/settings.local.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"permissions": {
"allow": [
"Bash(./gradlew:*)",
"Bash(gh auth:*)",
"Bash(gh pr diff:*)",
"Bash(find:*)"
],
"deny": [],
"ask": []
}
}
54 changes: 0 additions & 54 deletions .editorconfig

This file was deleted.

69 changes: 69 additions & 0 deletions .github/workflows/develop.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Android CI - Develop

on:
push:
branches: [ "develop" ]

jobs:
ui-tests:
name: Run android tests and build staging
runs-on: ubuntu-latest
timeout-minutes: 60

steps:

- name: Checking out branch
uses: actions/checkout@v4

- name: set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: gradle

- name: Setup Android SDK
uses: android-actions/setup-android@v3

# Hardware accelerated Android virtualization on Actions Linux larger hosted runners
- name: Enable KVM
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm

# Significantly reduce emulator startup time by setting up AVD snapshot caching
- name: Gradle cache
uses: gradle/actions/setup-gradle@v3

- name: AVD cache
uses: actions/cache@v4
id: avd-cache
with:
path: |
~/.android/avd/*
~/.android/adb*
key: avd-30

- name: Create AVD and generate snapshot for caching
if: steps.avd-cache.outputs.cache-hit != 'true'
uses: ReactiveCircus/android-emulator-runner@v2.33.0
with:
api-level: 30
target: google_atd
arch: x86
force-avd-creation: false
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: false
script: echo "Generated AVD snapshot for caching."

- name: Run Android tests
uses: ReactiveCircus/android-emulator-runner@v2.33.0
with:
api-level: 30
target: google_atd
arch: x86
force-avd-creation: false
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: true
script: ./gradlew :scan-engine:connectedAndroidTest
4 changes: 2 additions & 2 deletions .github/workflows/pr-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ jobs:
- name: Setup Android SDK
uses: android-actions/setup-android@v3

- name: Run Detekt Code Analysis
run: ./gradlew detekt
- name: Run Spotless Code Analysis
run: ./gradlew spotlessCheck

- name: Run Unit tests
run: ./gradlew testDebug
122 changes: 49 additions & 73 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,77 +1,53 @@
name: Android CI - Release
name: Publish to Maven Central

on:
push:
branches: [ "master" ]
push:
branches: [ "master" ]

jobs:
basic-tests:
name: Run all tests

runs-on: ubuntu-latest
strategy:
matrix:
api-level: [ 30 ]
target: [ google_apis ]

steps:

- name: Checking out branch
uses: actions/checkout@v4

- name: set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: gradle

- name: Setup Android SDK
uses: android-actions/setup-android@v3

- name: Run Detekt Code Analysis
run: ./gradlew detekt

- name: Run Unit tests
run: ./gradlew testDebug

# Hardware accelerated Android virtualization on Actions Linux larger hosted runners
- name: Enable KVM
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm

# Significantly reduce emulator startup time by setting up AVD snapshot caching
- name: Gradle cache
uses: gradle/actions/setup-gradle@v3

- name: AVD cache
uses: actions/cache@v4
id: avd-cache
with:
path: |
~/.android/avd/*
~/.android/adb*
key: avd-${{ matrix.api-level }}

- name: Create AVD and generate snapshot for caching
if: steps.avd-cache.outputs.cache-hit != 'true'
uses: ReactiveCircus/android-emulator-runner@v2.30.1
with:
api-level: ${{ matrix.api-level }}
target: ${{ matrix.target }}
force-avd-creation: false
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: false
script: echo "Generated AVD snapshot for caching."

- name: Run Android tests
uses: ReactiveCircus/android-emulator-runner@v2.30.1
with:
api-level: ${{ matrix.api-level }}
target: ${{ matrix.target }}
force-avd-creation: false
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: true
script: ./gradlew scan-engine:connectedCheck
publish:
name: Build and publish to Maven Central
runs-on: macos-latest
timeout-minutes: 60

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '17'

- name: Install GPG
env:
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
run: |
brew install gpg
echo "$SIGNING_KEY" | gpg --dearmor > ${HOME}/secring.gpg

- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3

- name: Add Gradle Properties
env:
MAVEN_CENTRAL_USER_NAME: ${{ secrets.MAVEN_CENTRAL_USER_NAME }}
MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
SIGNING_KEY_ID: ${{ secrets.SIGNING_KEY_ID }}
SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }}
run: |
echo "mavenCentralUsername=${MAVEN_CENTRAL_USER_NAME}" >> gradle.properties
echo "mavenCentralPassword=${MAVEN_CENTRAL_PASSWORD}" >> gradle.properties
echo "signing.keyId=${SIGNING_KEY_ID}" >> gradle.properties
echo "signing.password=${SIGNING_KEY_PASSWORD}" >> gradle.properties
echo "signing.secretKeyRingFile=${HOME}/secring.gpg" >> gradle.properties

- name: Setup Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: latest-stable

- name: Publish To Maven Central
run: |
./gradlew publishAndReleaseToMavenCentral --no-configuration-cache
14 changes: 14 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ out/
.gradle/
/build
/scan-engine/build
/sample/build
/buildSrc/build

# Local configuration file (sdk path, etc)
Expand Down Expand Up @@ -59,3 +60,16 @@ out/
/.idea/navEditor.xml
.externalNativeBuild
.cxx
/.kotlin

# CocoaPods
Pods/
*.xcworkspace

# ============================
# Xcode / iOS
# ============================
iosApp/Pods/
/iosApp/iosApp.xcodeproj/xcuserdata/
/iosApp/iosApp.xcodeproj/project.xcworkspace/xcuserdata/
**/xcuserdata/
Loading