Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0adf1b8826 | |||
| c517794182 | |||
| b511ab4dc0 |
+15
-1
@@ -8,6 +8,9 @@ on:
|
|||||||
- "v*"
|
- "v*"
|
||||||
- "release-*"
|
- "release-*"
|
||||||
- "[0-9]+.[0-9]+.[0-9]+*"
|
- "[0-9]+.[0-9]+.[0-9]+*"
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
@@ -16,7 +19,6 @@ env:
|
|||||||
GO_VERSION: "1.26.1"
|
GO_VERSION: "1.26.1"
|
||||||
ANDROID_SDK_ROOT: /opt/android-sdk
|
ANDROID_SDK_ROOT: /opt/android-sdk
|
||||||
ANDROID_NDK_ROOT: /opt/android-sdk/ndk
|
ANDROID_NDK_ROOT: /opt/android-sdk/ndk
|
||||||
JAVA_HOME: /usr/lib/jvm/java-21-openjdk-amd64
|
|
||||||
DIST_DIR: dist
|
DIST_DIR: dist
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
@@ -31,6 +33,12 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
go-version: ${{ env.GO_VERSION }}
|
go-version: ${{ env.GO_VERSION }}
|
||||||
|
|
||||||
|
- name: Setup Java
|
||||||
|
uses: actions/setup-java@v4
|
||||||
|
with:
|
||||||
|
distribution: temurin
|
||||||
|
java-version: "25"
|
||||||
|
|
||||||
- name: Install native build dependencies
|
- name: Install native build dependencies
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
@@ -78,6 +86,12 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
go-version: ${{ env.GO_VERSION }}
|
go-version: ${{ env.GO_VERSION }}
|
||||||
|
|
||||||
|
- name: Setup Java
|
||||||
|
uses: actions/setup-java@v4
|
||||||
|
with:
|
||||||
|
distribution: temurin
|
||||||
|
java-version: "25"
|
||||||
|
|
||||||
- name: Install native build dependencies
|
- name: Install native build dependencies
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -177,7 +177,7 @@ These features are product requirements, not “nice to have” ideas.
|
|||||||
local `ANDROID_NDK_ROOT=/opt/android-ndk`,
|
local `ANDROID_NDK_ROOT=/opt/android-ndk`,
|
||||||
CI `ANDROID_NDK_ROOT=/opt/android-sdk/ndk`,
|
CI `ANDROID_NDK_ROOT=/opt/android-sdk/ndk`,
|
||||||
local `JAVA_HOME=/usr/lib/jvm/java-25-openjdk`,
|
local `JAVA_HOME=/usr/lib/jvm/java-25-openjdk`,
|
||||||
CI `JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64`.
|
CI `JAVA_HOME` provided by `actions/setup-java` with Temurin 25.
|
||||||
- Remember the known Android runtime regression:
|
- Remember the known Android runtime regression:
|
||||||
`gioui.org v0.9.0` produced a black screen on the `KeepassGoAPI35` emulator, while `gioui.org v0.8.0` rendered correctly. Treat Gio upgrades on Android as regression-sensitive and verify them on-device or in the emulator.
|
`gioui.org v0.9.0` produced a black screen on the `KeepassGoAPI35` emulator, while `gioui.org v0.8.0` rendered correctly. Treat Gio upgrades on Android as regression-sensitive and verify them on-device or in the emulator.
|
||||||
- When validating an APK in the emulator, prefer the known KeePassGO setup:
|
- When validating an APK in the emulator, prefer the known KeePassGO setup:
|
||||||
|
|||||||
@@ -15,7 +15,8 @@ make apk-release
|
|||||||
`make apk` uses a local Java 25 install when `JAVA_HOME` points to one.
|
`make apk` uses a local Java 25 install when `JAVA_HOME` points to one.
|
||||||
If the host does not have a working Java 25 install, it falls back to the
|
If the host does not have a working Java 25 install, it falls back to the
|
||||||
repo-managed Docker image in `packaging/docker/android-apk/`, which also builds
|
repo-managed Docker image in `packaging/docker/android-apk/`, which also builds
|
||||||
with Java 25.
|
with Java 25. CI provisions Java 25 directly in the build job so release builds
|
||||||
|
use that same local path instead of nested Docker.
|
||||||
|
|
||||||
`make apk` remains a developer build path and may use Gio's default debug or
|
`make apk` remains a developer build path and may use Gio's default debug or
|
||||||
ephemeral signing behavior if no explicit signing key is provided.
|
ephemeral signing behavior if no explicit signing key is provided.
|
||||||
@@ -67,7 +68,7 @@ The Android build uses the branded icon asset at:
|
|||||||
|
|
||||||
Note:
|
Note:
|
||||||
|
|
||||||
- KeePassGO's documented Android build uses Java 25 locally.
|
- KeePassGO's documented Android build uses Java 25 locally and in CI.
|
||||||
- If that host setup is unavailable, `make apk` falls back to the Docker image
|
- If that host setup is unavailable, `make apk` falls back to the Docker image
|
||||||
so the build still runs under Java 25 instead of encoding a newer host JDK as
|
so the build still runs under Java 25 instead of encoding a newer host JDK as
|
||||||
a requirement.
|
a requirement.
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ apk-local: android/keepassgo-android.jar
|
|||||||
apk-release:
|
apk-release:
|
||||||
@test -f "$(RELEASE_SIGNKEY)" || { echo "Release signing key not found at $(RELEASE_SIGNKEY)"; exit 1; }
|
@test -f "$(RELEASE_SIGNKEY)" || { echo "Release signing key not found at $(RELEASE_SIGNKEY)"; exit 1; }
|
||||||
@test -f "$(RELEASE_SIGNPASS_FILE)" || { echo "Release signing password file not found at $(RELEASE_SIGNPASS_FILE)"; exit 1; }
|
@test -f "$(RELEASE_SIGNPASS_FILE)" || { echo "Release signing password file not found at $(RELEASE_SIGNPASS_FILE)"; exit 1; }
|
||||||
@$(MAKE) apk SIGNKEY="$(abspath $(RELEASE_SIGNKEY))" SIGNPASS_FILE="$(abspath $(RELEASE_SIGNPASS_FILE))"
|
@$(MAKE) apk SIGNKEY="$(abspath $(RELEASE_SIGNKEY))" SIGNPASS_FILE="$(abspath $(RELEASE_SIGNPASS_FILE))" JAVA_HOME="$(JAVA_HOME)"
|
||||||
|
|
||||||
apk-container: apk-container-image
|
apk-container: apk-container-image
|
||||||
@command -v docker >/dev/null 2>&1 || { echo "docker is required for apk-container"; exit 1; }
|
@command -v docker >/dev/null 2>&1 || { echo "docker is required for apk-container"; exit 1; }
|
||||||
|
|||||||
@@ -95,8 +95,9 @@ make apk
|
|||||||
|
|
||||||
`make apk` prefers a local Java 25 install at `JAVA_HOME`. If that is not
|
`make apk` prefers a local Java 25 install at `JAVA_HOME`. If that is not
|
||||||
available, it falls back to the repo-managed Docker build image, which also
|
available, it falls back to the repo-managed Docker build image, which also
|
||||||
uses Java 25. You still need the Android SDK and NDK installed and configured
|
uses Java 25. CI provisions Java 25 directly in the build job so release
|
||||||
for real device or release packaging.
|
packaging follows that same local path. You still need the Android SDK and NDK
|
||||||
|
installed and configured for real device or release packaging.
|
||||||
|
|
||||||
Release package:
|
Release package:
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user