prod-pins/scripts/release-client.sh
Alois 123205c97d
Some checks failed
action.yml / Centralize Tensamin packages modules and release automation (push) Failing after 0s
Canary release / release (push) Failing after 21s
Centralize Tensamin packages modules and release automation
2026-10-04 19:19:56 +02:00

35 lines
1.7 KiB
Shell

#!/usr/bin/env bash
set -euo pipefail
cd "${RELEASE_WORK:?}"
pnpm install --frozen-lockfile
case ${1:?} in
desktop)
pnpm run ci
electron_arch=x64
[[ $RELEASE_ARCH != aarch64 ]] || electron_arch=arm64
pnpm --dir apps/electron exec electron-builder --config electron-builder.config.cjs \
--linux --"$electron_arch" --publish never
pnpm run copy-releases
for asset in releases/*; do
[[ $(basename "$asset") == SHA256SUMS ]] && continue
name=$(basename "$asset")
[[ $name != electron-release-metadata.json ]] || name="electron-release-metadata-$RELEASE_ARCH.json"
cp "$asset" "$RELEASE_OUT/$name"
done
;;
android)
: "${ANDROID_KEYSTORE_BASE64:?}" "${ANDROID_KEY_ALIAS:?}" "${ANDROID_KEY_PASSWORD:?}" "${ANDROID_STORE_PASSWORD:?}"
umask 077
printf '%s' "$ANDROID_KEYSTORE_BASE64" | base64 --decode > release.keystore
# Gradle resolves the keystore properties relative to the client root.
printf 'storeFile=release.keystore\nkeyAlias=%s\nkeyPassword=%s\nstorePassword=%s\n' \
"$ANDROID_KEY_ALIAS" "$ANDROID_KEY_PASSWORD" "$ANDROID_STORE_PASSWORD" > keystore.properties
trap 'rm -f release.keystore keystore.properties' EXIT
cargo test --locked --manifest-path apps/tauri/src-tauri/Cargo.toml
pnpm run build:mobile
apk=apps/tauri/src-tauri/gen/android/app/build/outputs/apk/universal/release/app-universal-release.apk
"$ANDROID_HOME/build-tools/35.0.0/apksigner" verify --verbose "$apk"
cp "$apk" "$RELEASE_OUT/Tensamin-$TENSAMIN_RELEASE_TAG.apk"
;;
*) exit 2 ;;
esac