Skip to content
Merged
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: 6 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -309,6 +309,9 @@ jobs:
## TODO: flip to true once this has passed on all four Linux legs.
## Until then it reports problems without blocking releases.
verify_strict: false
## Nothing in Robrix consumes updater metadata, and .deb has no updater
## format mapping anyway, so latest.json would ship empty and misleading.
uploadUpdaterJson: false

for_macos:
name: Release Robrix for macOS (${{ matrix.os }}, ${{ matrix.arch }})
Expand Down Expand Up @@ -378,6 +381,7 @@ jobs:
github_token: ${{ secrets.ROBRIX_RELEASE }}
packager_formats: nsis
releaseId: ${{ needs.create_release.outputs.release_id }}
uploadUpdaterJson: false

for_android:
name: Release Robrix for Android (aarch64)
Expand All @@ -404,7 +408,9 @@ jobs:
with:
github_token: ${{ secrets.ROBRIX_RELEASE }}
args: --target aarch64-linux-android
app_name: Robrix
releaseId: ${{ needs.create_release.outputs.release_id }}
uploadUpdaterJson: false

for_ios:
name: Release Robrix for iOS
Expand Down
12 changes: 7 additions & 5 deletions packaging/build-ios-testflight.sh
Original file line number Diff line number Diff line change
Expand Up @@ -93,10 +93,12 @@ set_or_add UILaunchScreen:UIImageName string AppIcon60x60
set_or_add UILaunchScreen:UIColorName string LaunchScreenBackground
set_or_add ITSAppUsesNonExemptEncryption bool false

VERSION=$(cargo metadata --no-deps --format-version 1 \
| jq -r '.packages[] | select(.name=="robrix") | .version' \
| sed 's/-.*$//')
echo "Version $VERSION (build $BUILD_NUMBER)"
FULL_VERSION=$(cargo metadata --no-deps --format-version 1 \
| jq -r '.packages[] | select(.name=="robrix") | .version')
# App Store Connect rejects semver pre-release suffixes, so the bundle carries the
# numeric part only. The asset name keeps the full version to match the other builds.
VERSION="${FULL_VERSION%%-*}"
echo "Version $VERSION (from $FULL_VERSION, build $BUILD_NUMBER)"
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $VERSION" "$PLIST"
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $BUILD_NUMBER" "$PLIST"

Expand All @@ -118,7 +120,7 @@ codesign -d --entitlements - "$APP_BUNDLE"
# ---- 7. Package .ipa ----
BUILD_DIR="$REPO_ROOT/target/apple/makepad-apple-app/aarch64-apple-ios/release"
cd "$BUILD_DIR"
IPA_NAME="Robrix-${VERSION}-ios.ipa"
IPA_NAME="robrix-${FULL_VERSION}-ios-aarch64-release.ipa"
rm -rf Payload "$IPA_NAME"
ditto "${APP}.app" "Payload/${APP}.app"
ditto -c -k --sequesterRsrc --keepParent Payload "$IPA_NAME"
Expand Down
11 changes: 10 additions & 1 deletion packaging/build-macos-dmg.sh
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,16 @@ rm -rf "$PROJECT_DIR/dist/Robrix.app" \
# way to find notarization credentials. Result: unsigned .app + DMG.

sed -i.bak 's/^signing_identity[[:space:]]*=/#&/' "$CARGO_TOML"
trap 'mv "$CARGO_TOML.bak" "$CARGO_TOML" 2>/dev/null && echo "Restored Cargo.toml"' EXIT

# cargo-packager copies our custom Info.plist verbatim, so the version keys in it
# would otherwise stay frozen at whatever was committed. Stamp them from Cargo.toml.
INFO_PLIST="$PROJECT_DIR/packaging/Info.plist"
cp "$INFO_PLIST" "$INFO_PLIST.bak"
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $PRODUCT_VERSION" "$INFO_PLIST"
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $(date +%Y%m%d.%H%M)" "$INFO_PLIST"
echo "==> Info.plist version set to $PRODUCT_VERSION (build $(/usr/libexec/PlistBuddy -c 'Print :CFBundleVersion' "$INFO_PLIST"))"

trap 'mv "$CARGO_TOML.bak" "$CARGO_TOML" 2>/dev/null && echo "Restored Cargo.toml"; mv "$INFO_PLIST.bak" "$INFO_PLIST" 2>/dev/null && echo "Restored Info.plist"' EXIT

TS_MARKER=$(mktemp)

Expand Down