diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 723ca1b70..636fa369f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -41,6 +41,8 @@ jobs: - name: Build debug app env: + GITHUB_ACTOR: ${{ github.actor }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} CHATWOOT_API: ${{ secrets.CHATWOOT_API }} run: ./gradlew assembleDevDebug diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 90ae78b07..892dcdccc 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -37,6 +37,8 @@ jobs: - name: Build debug app env: + GITHUB_ACTOR: ${{ github.actor }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} CHATWOOT_API: ${{ secrets.CHATWOOT_API }} E2E: true run: ./gradlew assembleDevDebug @@ -123,7 +125,7 @@ jobs: emulator-options: -no-window -gpu swiftshader_indirect -no-snapshot -noaudio -no-boot-anim -camera-back none -camera-front none script: | # adb port forwarding for regtest - adb reverse tcp:60001 tcp:60001 + adb reverse tcp:60001 tcp:60001 cd bitkit-e2e-tests && npm run e2e:android -- --mochaOpts.grep "Can start onboarding" env: RECORD_VIDEO: true diff --git a/.github/workflows/ui-tests.yml b/.github/workflows/ui-tests.yml index 3fa9cc3a9..ff1b5d6a2 100644 --- a/.github/workflows/ui-tests.yml +++ b/.github/workflows/ui-tests.yml @@ -42,7 +42,11 @@ jobs: - name: Make gradlew executable run: chmod +x gradlew - - name: Build for debug with gradle + - name: Build debug app + env: + GITHUB_ACTOR: ${{ github.actor }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + CHATWOOT_API: ${{ secrets.CHATWOOT_API }} run: | ./gradlew assembleDevDebug assembleDevDebugAndroidTest ls -la app/build/outputs/apk/debug/ diff --git a/README.md b/README.md index 053fb0ab2..1819a41b7 100644 --- a/README.md +++ b/README.md @@ -13,12 +13,33 @@ This repository contains a **new native Android app** which is **not ready for p ## Development -**Prerequisites** -1. Download `google-services.json` to `app/` from FCM Console. +### Prerequisites + +#### 1. Download `google-services.json` to `app/` from FCM Console. + +#### 2. GitHub Packages setup + +Some internal libraries are distributed via GitHub Packages. Configure credentials so Gradle can resolve them. + +1) Create a GitHub token with `read:packages` scope. + +2) Provide credentials for Gradle (choose one): + + - Environment variables + - `GITHUB_ACTOR` (your username) + - `GITHUB_TOKEN` (token with `read:packages`) + + - Or `~/.gradle/local.properties` + - `gpr.user=YOUR_GITHUB_USERNAME` + - `gpr.key=YOUR_GITHUB_TOKEN` + +See also: +- [bitkit-core android bindings](https://github.com/synonymdev/bitkit-core/tree/master/bindings/android#installation) ### References - For LNURL dev testing see [bitkit-docker](https://github.com/ovitrif/bitkit-docker) +- Bitkit Core Android bindings README: [synonymdev/bitkit-core — bindings/android/README.md](https://github.com/synonymdev/bitkit-core/blob/master/bindings/android/README.md) ### Linting diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 6d1d9d8d5..7bbe251c2 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -197,7 +197,7 @@ dependencies { // Crypto implementation(libs.bouncycastle.provider.jdk) implementation(libs.ldk.node.android) { exclude(group = "net.java.dev.jna", module = "jna") } - implementation(libs.bitkitcore) { exclude(group = "net.java.dev.jna", module = "jna") } + implementation(libs.bitkitcore) // Firebase implementation(platform(libs.firebase.bom)) implementation(libs.firebase.messaging) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index cdec71d01..019f426b8 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -46,8 +46,7 @@ activity-compose = { module = "androidx.activity:activity-compose", version.ref appcompat = { module = "androidx.appcompat:appcompat", version.ref = "appcompat" } barcode-scanning = { module = "com.google.mlkit:barcode-scanning", version.ref = "barcodeScanning" } biometric = { module = "androidx.biometric:biometric", version.ref = "biometric" } -#bitkitcore = { module = "com.synonym:bitkit-core-android", version = "0.1.9" } # mavenLocal -bitkitcore = { module = "com.github.synonymdev:bitkit-core", version = "v0.1.9" } # jitpack +bitkitcore = { module = "com.synonym:bitkit-core-android", version = "0.1.10" } bouncycastle-provider-jdk = { module = "org.bouncycastle:bcprov-jdk18on", version.ref = "bouncyCastle" } camera-camera2 = { module = "androidx.camera:camera-camera2", version.ref = "camera" } camera-lifecycle = { module = "androidx.camera:camera-lifecycle", version.ref = "camera" } diff --git a/settings.gradle.kts b/settings.gradle.kts index fc02719f5..698720575 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,3 +1,6 @@ +import java.io.FileInputStream +import java.util.Properties + pluginManagement { repositories { google() @@ -13,6 +16,27 @@ dependencyResolutionManagement { google() mavenCentral() maven("https://jitpack.io") + maven { + url = uri("https://maven.pkg.github.com/synonymdev/bitkit-core") + credentials { + + val localPropertiesFile = File(rootDir, "gradle.properties") + val localProperties = Properties() + + if (localPropertiesFile.exists()) { + localProperties.load(FileInputStream(localPropertiesFile)) + } + + username = System.getenv("GITHUB_ACTOR") + ?: localProperties.getProperty("gpr.user") + ?: providers.gradleProperty("gpr.user").orNull + + + password = System.getenv("GITHUB_TOKEN") + ?: localProperties.getProperty("gpr.key") + ?: providers.gradleProperty("gpr.key").orNull + } + } } } rootProject.name = "bitkit-android"