Skip to content

Add Flutter multi-platform package; add Android 16kb page size suppor… #1

Add Flutter multi-platform package; add Android 16kb page size suppor…

Add Flutter multi-platform package; add Android 16kb page size suppor… #1

Workflow file for this run

name: publish flutter package
on:
push:
tags:
- '*.*.*'
permissions:
contents: read
id-token: write
jobs:
publish:
runs-on: ubuntu-22.04
name: publish to pub.dev
steps:
- uses: actions/checkout@v4.2.2
- name: download release assets
run: |
VERSION=${GITHUB_REF#refs/tags/}
echo "VERSION=$VERSION" >> $GITHUB_ENV
mkdir -p artifacts
cd artifacts
# Download all platform binaries from the GitHub release
gh release download "$VERSION" --pattern "cloudsync-*.tar.gz"
# Extract all archives
for archive in cloudsync-*.tar.gz; do
name=$(basename "$archive" "-$VERSION.tar.gz")
mkdir -p "$name"
tar -xzf "$archive" -C "$name"
rm "$archive"
done
ls -la
env:
GH_TOKEN: ${{ github.token }}
- uses: dart-lang/setup-dart@v1.7.1
- name: assemble and publish flutter package
run: |
FLUTTER_DIR=packages/flutter
# Android
mkdir -p $FLUTTER_DIR/native_libraries/android
cp artifacts/cloudsync-android-arm64-v8a/cloudsync.so $FLUTTER_DIR/native_libraries/android/cloudsync_android_arm64.so
cp artifacts/cloudsync-android-armeabi-v7a/cloudsync.so $FLUTTER_DIR/native_libraries/android/cloudsync_android_arm.so
cp artifacts/cloudsync-android-x86_64/cloudsync.so $FLUTTER_DIR/native_libraries/android/cloudsync_android_x64.so
# iOS device
mkdir -p $FLUTTER_DIR/native_libraries/ios
cp artifacts/cloudsync-ios/cloudsync.dylib $FLUTTER_DIR/native_libraries/ios/cloudsync_ios_arm64.dylib
# iOS simulator (keep universal/fat binary as-is)
mkdir -p $FLUTTER_DIR/native_libraries/ios-sim
cp artifacts/cloudsync-ios-sim/cloudsync.dylib $FLUTTER_DIR/native_libraries/ios-sim/cloudsync_ios-sim.dylib
# macOS (separate arch-specific dylibs)
mkdir -p $FLUTTER_DIR/native_libraries/mac
cp artifacts/cloudsync-macos-arm64/cloudsync.dylib $FLUTTER_DIR/native_libraries/mac/cloudsync_mac_arm64.dylib
cp artifacts/cloudsync-macos-x86_64/cloudsync.dylib $FLUTTER_DIR/native_libraries/mac/cloudsync_mac_x64.dylib
# Linux
mkdir -p $FLUTTER_DIR/native_libraries/linux
cp artifacts/cloudsync-linux-x86_64/cloudsync.so $FLUTTER_DIR/native_libraries/linux/cloudsync_linux_x64.so
cp artifacts/cloudsync-linux-arm64/cloudsync.so $FLUTTER_DIR/native_libraries/linux/cloudsync_linux_arm64.so
# Windows
mkdir -p $FLUTTER_DIR/native_libraries/windows
cp artifacts/cloudsync-windows-x86_64/cloudsync.dll $FLUTTER_DIR/native_libraries/windows/cloudsync_windows_x64.dll
# Update version
sed -i "s/^version: .*/version: $VERSION/" $FLUTTER_DIR/pubspec.yaml
# Publish to pub.dev
cd $FLUTTER_DIR
dart pub get
dart pub publish --dry-run
dart pub publish --force