Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
6 changes: 3 additions & 3 deletions .agents/commands/release.md
Original file line number Diff line number Diff line change
Expand Up @@ -208,8 +208,8 @@ Print the path to the release notes file so the user can share it for review.
just release
```

Expected APK path: `app/build/outputs/apk/mainnet/release/bitkit-mainnet-release-{newVersionCode}-universal.apk`
Expected AAB path: `app/build/outputs/bundle/mainnetRelease/bitkit-mainnet-release-{newVersionCode}.aab`
Expected APK path: `app/build/outputs/bitkit/mainnetRelease/bitkit-mainnet-release-{newVersionCode}-universal.apk`
Expected AAB path: `app/build/outputs/bitkit/mainnetRelease/bitkit-mainnet-release-{newVersionCode}.aab`
Expected native debug symbols path: `app/build/outputs/native-debug-symbols/mainnetRelease/native-debug-symbols-{newVersionCode}.zip`

Verify all three files exist. The native debug symbols file must be from the same `just release` build as the APK/AAB. Keep the build-numbered filename, e.g. `native-debug-symbols-{newVersionCode}.zip`, so it matches the APK/AAB build number. `just release` resolves upstream native debug symbol artifacts from the Rust dependency packages, merges them into the final archive, and refuses placeholder symbols from stripped packaged `.so` files.
Expand All @@ -218,7 +218,7 @@ Verify all three files exist. The native debug symbols file must be from the sam

```bash
gh release upload v{newVersionName} \
app/build/outputs/apk/mainnet/release/bitkit-mainnet-release-{newVersionCode}-universal.apk \
app/build/outputs/bitkit/mainnetRelease/bitkit-mainnet-release-{newVersionCode}-universal.apk \
app/build/outputs/native-debug-symbols/mainnetRelease/native-debug-symbols-{newVersionCode}.zip
```

Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,14 +79,14 @@ jobs:

- name: Rename APK
run: |
apk=$(find app/build/outputs/apk/dev/debug -name 'bitkit-dev-debug-*-universal.apk')
mv "$apk" app/build/outputs/apk/dev/debug/bitkit_e2e.apk
apk=$(find app/build/outputs/bitkit/devDebug -name 'bitkit-dev-debug-*-universal.apk')
mv "$apk" app/build/outputs/bitkit/devDebug/bitkit_e2e.apk

- name: Upload APK (local)
uses: actions/upload-artifact@v7
with:
name: bitkit-e2e-apk_${{ github.run_number }}
path: app/build/outputs/apk/dev/debug/bitkit_e2e.apk
path: app/build/outputs/bitkit/devDebug/bitkit_e2e.apk

build-staging:
needs: detect-changes
Expand Down Expand Up @@ -132,14 +132,14 @@ jobs:

- name: Rename APK
run: |
apk=$(find app/build/outputs/apk/dev/debug -name 'bitkit-dev-debug-*-universal.apk')
mv "$apk" app/build/outputs/apk/dev/debug/bitkit_e2e.apk
apk=$(find app/build/outputs/bitkit/devDebug -name 'bitkit-dev-debug-*-universal.apk')
mv "$apk" app/build/outputs/bitkit/devDebug/bitkit_e2e.apk

- name: Upload APK (regtest)
uses: actions/upload-artifact@v7
with:
name: bitkit-e2e-apk-regtest_${{ github.run_number }}
path: app/build/outputs/apk/dev/debug/bitkit_e2e.apk
path: app/build/outputs/bitkit/devDebug/bitkit_e2e.apk

e2e-branch:
needs: detect-changes
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/e2e_migration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,14 +60,14 @@ jobs:

- name: Rename APK
run: |
apk=$(find app/build/outputs/apk/dev/debug -name 'bitkit-dev-debug-*-universal.apk')
mv "$apk" app/build/outputs/apk/dev/debug/bitkit_e2e.apk
apk=$(find app/build/outputs/bitkit/devDebug -name 'bitkit-dev-debug-*-universal.apk')
mv "$apk" app/build/outputs/bitkit/devDebug/bitkit_e2e.apk

- name: Upload APK
uses: actions/upload-artifact@v7
with:
name: bitkit-e2e-apk_${{ github.run_number }}
path: app/build/outputs/apk/dev/debug/bitkit_e2e.apk
path: app/build/outputs/bitkit/devDebug/bitkit_e2e.apk

e2e-branch:
if: github.event.pull_request.draft == false
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/release-internal.yml
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ jobs:
exit 1
fi
done < <(find "$extract_dir" -name '*.so' -print0)
done < <(find app/build/outputs/apk/mainnet/release -type f -name '*.apk' -print0)
done < <(find app/build/outputs/bitkit/mainnetRelease -type f -name '*.apk' -print0)
test "$native_count" -gt 0

- name: Verify internal release signature
Expand All @@ -118,7 +118,7 @@ jobs:
while IFS= read -r -d '' apk_path; do
apk_count=$((apk_count + 1))
"$apksigner_path" verify --verbose --print-certs "$apk_path"
done < <(find app/build/outputs/apk/mainnet/release -name 'bitkit-mainnet-release-*.apk' -print0)
done < <(find app/build/outputs/bitkit/mainnetRelease -name 'bitkit-mainnet-release-*.apk' -print0)
test "$apk_count" -gt 0

- name: Collect internal artifacts
Expand All @@ -127,7 +127,7 @@ jobs:
set -euo pipefail
artifact_dir="$RUNNER_TEMP/internal-release"
mkdir -p "$artifact_dir"
mapfile -d '' apk_paths < <(find app/build/outputs/apk/mainnet/release -name 'bitkit-mainnet-release-*.apk' -print0)
mapfile -d '' apk_paths < <(find app/build/outputs/bitkit/mainnetRelease -name 'bitkit-mainnet-release-*.apk' -print0)
mapfile -d '' symbol_paths < <(find app/build/outputs/native-debug-symbols/mainnetRelease -name 'native-debug-symbols-*.zip' -print0)
test "${#apk_paths[@]}" -gt 0
test "${#symbol_paths[@]}" -gt 0
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ jobs:
exit 1
fi
done < <(find "$extract_dir" -name '*.so' -print0)
done < <(find app/build/outputs/apk/mainnet/release app/build/outputs/bundle/mainnetRelease -type f \( -name '*.apk' -o -name '*.aab' \) -print0)
done < <(find app/build/outputs/bitkit/mainnetRelease -type f \( -name '*.apk' -o -name '*.aab' \) -print0)
test "$native_count" -gt 0

- name: Verify release signatures
Expand All @@ -119,7 +119,7 @@ jobs:
while IFS= read -r -d '' apk_path; do
apk_count=$((apk_count + 1))
"$apksigner_path" verify --verbose --print-certs "$apk_path"
done < <(find app/build/outputs/apk/mainnet/release -name 'bitkit-mainnet-release-*.apk' -print0)
done < <(find app/build/outputs/bitkit/mainnetRelease -name 'bitkit-mainnet-release-*.apk' -print0)
test "$apk_count" -gt 0

bundle_count=0
Expand All @@ -141,7 +141,7 @@ jobs:
exit 1
fi
rm -f "$verify_output"
done < <(find app/build/outputs/bundle/mainnetRelease -name 'bitkit-mainnet-release-*.aab' -print0)
done < <(find app/build/outputs/bitkit/mainnetRelease -name 'bitkit-mainnet-release-*.aab' -print0)
test "$bundle_count" -gt 0

- name: Collect release artifacts
Expand All @@ -150,8 +150,8 @@ jobs:
set -euo pipefail
artifact_dir="$RUNNER_TEMP/release"
mkdir -p "$artifact_dir"
mapfile -d '' bundle_paths < <(find app/build/outputs/bundle/mainnetRelease -name 'bitkit-mainnet-release-*.aab' -print0)
mapfile -d '' apk_paths < <(find app/build/outputs/apk/mainnet/release -name 'bitkit-mainnet-release-*.apk' -print0)
mapfile -d '' bundle_paths < <(find app/build/outputs/bitkit/mainnetRelease -name 'bitkit-mainnet-release-*.aab' -print0)
mapfile -d '' apk_paths < <(find app/build/outputs/bitkit/mainnetRelease -name 'bitkit-mainnet-release-*.apk' -print0)
mapfile -d '' symbol_paths < <(find app/build/outputs/native-debug-symbols/mainnetRelease -name 'native-debug-symbols-*.zip' -print0)
test "${#bundle_paths[@]}" -gt 0
test "${#apk_paths[@]}" -gt 0
Expand Down
2 changes: 1 addition & 1 deletion Justfile
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ run mode="" logs="":
set -eu

app_id="to.bitkit.dev"
app_dir="app/build/outputs/apk/dev/debug"
app_dir="app/build/outputs/bitkit/devDebug"
mode="{{ mode }}"
logs="{{ logs }}"
attach_logs=false
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -180,8 +180,8 @@ just build assembleDevRelease
# just build assembleRelease # for all flavors
```

APK is generated in `app/build/outputs/apk/_flavor_/release`. (`_flavor_` can be any of 'dev', 'mainnet', 'tnet').
Example for dev: `app/build/outputs/apk/dev/release`
AGP writes its own APKs to `app/build/outputs/apk/_flavor_/release`, and the build publishes deterministically named copies to `app/build/outputs/bitkit/_variant_`. (`_flavor_` can be any of 'dev', 'mainnet', 'tnet'; `_variant_` is the flavor and build type, e.g. `devRelease`).
Example for dev: `app/build/outputs/bitkit/devRelease/bitkit-dev-release-{versionCode}-universal.apk`

### Build for Release

Expand All @@ -195,8 +195,8 @@ just release

Release artifacts:

- APK: `app/build/outputs/apk/mainnet/release/`
- AAB: `app/build/outputs/bundle/mainnetRelease/`
- APK: `app/build/outputs/bitkit/mainnetRelease/bitkit-mainnet-release-{versionCode}-{abi}.apk`
- AAB: `app/build/outputs/bitkit/mainnetRelease/bitkit-mainnet-release-{versionCode}.aab`
- Native debug symbols: `app/build/outputs/native-debug-symbols/mainnetRelease/native-debug-symbols-{versionCode}.zip`

The native debug symbols archive must come from the same `just release` build as the APK/AAB being published. Keep the build-numbered filename, e.g. `native-debug-symbols-182.zip`, so it matches the APK/AAB build number. Native Rust dependencies publish stripped release AARs for app size and separate `native-debug-symbols` classifier artifacts for crash symbolication; `just release` merges those upstream symbol artifacts into the final archive and refuses placeholder symbols from stripped packaged `.so` files.
Expand All @@ -209,7 +209,7 @@ For GitHub releases, attach `native-debug-symbols-{versionCode}.zip` alongside t

#### Android App Bundle (AAB)

`just release` builds both the mainnet APK and Play Store AAB. AAB is generated in `app/build/outputs/bundle/mainnetRelease/`.
`just release` builds both the mainnet APK and Play Store AAB. AGP writes the AAB to `app/build/outputs/bundle/mainnetRelease/`, and the release-named copy lands in `app/build/outputs/bitkit/mainnetRelease/`.

### Build for E2E Testing

Expand Down
Loading
Loading