Compare commits

..

2 Commits

Author SHA1 Message Date
funman300 a5c3188686 ci(release): scope cargo apk build to --lib to avoid post-sign panic
Release / Build · Android APK (push) Has been cancelled
Release / Publish GitHub Release (push) Has been cancelled
Release / Build · Linux x86_64 (push) Has been cancelled
cargo-apk panics with "Bin is not compatible with Cdylib" after
successfully signing the APK, when cargo-subcommand's artifact
iterator walks the bin target after the cdylib has been produced.
The APK file survives the panic on disk, but the non-zero exit
fails the workflow step before the upload runs.

Passing --lib scopes the build to the cdylib target only.
SESSION_HANDOFF.md documented this as the canonical workaround.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-10 19:18:46 -07:00
funman300 6a289b7b50 ci: bump GitHub Actions to v5 for Node 24 compatibility
actions/checkout, actions/cache, actions/upload-artifact, and
actions/download-artifact bumped from v4 to v5 across both
ci.yml and release.yml. Pre-empts the 2026-06-02 Node 20
deprecation deadline.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-10 19:18:35 -07:00
2 changed files with 19 additions and 13 deletions
+4 -4
View File
@@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable
@@ -33,7 +33,7 @@ jobs:
libxkbcommon-dev
- name: Cache cargo registry and build artifacts
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: |
~/.cargo/registry
@@ -59,7 +59,7 @@ jobs:
needs: test
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable
@@ -74,7 +74,7 @@ jobs:
libxkbcommon-dev
- name: Cache cargo registry and build artifacts
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: |
~/.cargo/registry
+15 -9
View File
@@ -32,7 +32,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable
@@ -44,7 +44,7 @@ jobs:
libasound2-dev libudev-dev libwayland-dev libxkbcommon-dev
- name: Cache cargo registry + build artifacts
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: |
~/.cargo/registry
@@ -63,7 +63,7 @@ jobs:
cp -r assets solitaire-quest/
tar -czf solitaire-quest-linux-x86_64.tar.gz solitaire-quest
- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@v5
with:
name: linux
path: solitaire-quest-linux-x86_64.tar.gz
@@ -76,7 +76,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Install Rust stable + Android targets
uses: dtolnay/rust-toolchain@stable
@@ -90,7 +90,7 @@ jobs:
run: echo "ANDROID_NDK_ROOT=$ANDROID_NDK_LATEST_HOME" >> $GITHUB_ENV
- name: Cache cargo registry + cargo-apk binary + build artifacts
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: |
~/.cargo/registry
@@ -126,7 +126,13 @@ jobs:
} >> solitaire_app/Cargo.toml
- name: Build and sign APK (release profile)
run: cargo apk build -p solitaire_app --release
# `--lib` scopes cargo-apk to the cdylib target only.
# Without it, cargo-apk panics post-sign with
# "Bin is not compatible with Cdylib" (cargo-subcommand
# artifact iteration walks the bin target after the
# cdylib APK is already produced). See SESSION_HANDOFF.md
# "Cosmetic cargo apk build --lib workaround."
run: cargo apk build -p solitaire_app --lib --release
- name: Stage APK for upload
run: |
@@ -134,7 +140,7 @@ jobs:
"solitaire-quest-${{ github.ref_name }}.apk"
rm release.keystore
- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@v5
with:
name: android
path: solitaire-quest-${{ github.ref_name }}.apk
@@ -148,11 +154,11 @@ jobs:
needs: [build-linux, build-android]
steps:
- uses: actions/download-artifact@v4
- uses: actions/download-artifact@v5
with:
name: linux
- uses: actions/download-artifact@v4
- uses: actions/download-artifact@v5
with:
name: android