Skip to content

Commit 5a3a524

Browse files
committed
fix(workflow): move publish flutter steps to a new workflow which triggers on push to tag
1 parent c9acd7a commit 5a3a524

File tree

2 files changed

+83
-45
lines changed

2 files changed

+83
-45
lines changed
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
name: publish flutter package
2+
on:
3+
push:
4+
tags:
5+
- '*.*.*'
6+
7+
permissions:
8+
contents: read
9+
id-token: write
10+
11+
jobs:
12+
publish:
13+
runs-on: ubuntu-22.04
14+
name: publish to pub.dev
15+
16+
steps:
17+
18+
- uses: actions/checkout@v4.2.2
19+
20+
- name: download release assets
21+
run: |
22+
VERSION=${GITHUB_REF#refs/tags/}
23+
echo "VERSION=$VERSION" >> $GITHUB_ENV
24+
25+
mkdir -p artifacts
26+
cd artifacts
27+
28+
# Download all platform binaries from the GitHub release
29+
gh release download "$VERSION" --pattern "js-*.tar.gz"
30+
31+
# Extract all archives
32+
for archive in js-*.tar.gz; do
33+
name=$(basename "$archive" "-$VERSION.tar.gz")
34+
mkdir -p "$name"
35+
tar -xzf "$archive" -C "$name"
36+
rm "$archive"
37+
done
38+
39+
ls -la
40+
env:
41+
GH_TOKEN: ${{ github.token }}
42+
43+
- uses: dart-lang/setup-dart@v1.7.1
44+
45+
- name: assemble and publish flutter package
46+
run: |
47+
FLUTTER_DIR=packages/flutter
48+
49+
# Android
50+
mkdir -p $FLUTTER_DIR/native_libraries/android
51+
cp artifacts/js-android-arm64-v8a/js.so $FLUTTER_DIR/native_libraries/android/js_android_arm64.so
52+
cp artifacts/js-android-x86_64/js.so $FLUTTER_DIR/native_libraries/android/js_android_x64.so
53+
54+
# iOS device
55+
mkdir -p $FLUTTER_DIR/native_libraries/ios
56+
cp artifacts/js-ios/js.dylib $FLUTTER_DIR/native_libraries/ios/js_ios_arm64.dylib
57+
58+
# iOS simulator (keep universal/fat binary as-is)
59+
mkdir -p $FLUTTER_DIR/native_libraries/ios-sim
60+
cp artifacts/js-ios-sim/js.dylib $FLUTTER_DIR/native_libraries/ios-sim/js_ios-sim.dylib
61+
62+
# macOS (separate arch-specific dylibs)
63+
mkdir -p $FLUTTER_DIR/native_libraries/mac
64+
cp artifacts/js-macos-arm64/js.dylib $FLUTTER_DIR/native_libraries/mac/js_mac_arm64.dylib
65+
cp artifacts/js-macos-x86_64/js.dylib $FLUTTER_DIR/native_libraries/mac/js_mac_x64.dylib
66+
67+
# Linux
68+
mkdir -p $FLUTTER_DIR/native_libraries/linux
69+
cp artifacts/js-linux-x86_64/js.so $FLUTTER_DIR/native_libraries/linux/js_linux_x64.so
70+
cp artifacts/js-linux-arm64/js.so $FLUTTER_DIR/native_libraries/linux/js_linux_arm64.so
71+
72+
# Windows
73+
mkdir -p $FLUTTER_DIR/native_libraries/windows
74+
cp artifacts/js-windows-x86_64/js.dll $FLUTTER_DIR/native_libraries/windows/js_windows_x64.dll
75+
76+
# Update version
77+
sed -i "s/^version: .*/version: $VERSION/" $FLUTTER_DIR/pubspec.yaml
78+
79+
# Publish to pub.dev
80+
cd $FLUTTER_DIR
81+
dart pub get
82+
dart pub publish --dry-run
83+
dart pub publish --force

.github/workflows/main.yml

Lines changed: 0 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -345,51 +345,6 @@ jobs:
345345
echo " Platform packages: 7"
346346
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
347347
348-
- uses: dart-lang/setup-dart@v1.7.1
349-
if: steps.tag.outputs.version != ''
350-
351-
- name: assemble and publish flutter package
352-
if: steps.tag.outputs.version != ''
353-
run: |
354-
VERSION=${{ steps.tag.outputs.version }}
355-
FLUTTER_DIR=packages/flutter
356-
357-
# Android
358-
mkdir -p $FLUTTER_DIR/native_libraries/android
359-
cp artifacts/js-android-arm64-v8a/js.so $FLUTTER_DIR/native_libraries/android/js_android_arm64.so
360-
cp artifacts/js-android-x86_64/js.so $FLUTTER_DIR/native_libraries/android/js_android_x64.so
361-
362-
# iOS device
363-
mkdir -p $FLUTTER_DIR/native_libraries/ios
364-
cp artifacts/js-ios/js.dylib $FLUTTER_DIR/native_libraries/ios/js_ios_arm64.dylib
365-
366-
# iOS simulator (keep universal/fat binary as-is)
367-
mkdir -p $FLUTTER_DIR/native_libraries/ios-sim
368-
cp artifacts/js-ios-sim/js.dylib $FLUTTER_DIR/native_libraries/ios-sim/js_ios-sim.dylib
369-
370-
# macOS (separate arch-specific dylibs)
371-
mkdir -p $FLUTTER_DIR/native_libraries/mac
372-
cp artifacts/js-macos-arm64/js.dylib $FLUTTER_DIR/native_libraries/mac/js_mac_arm64.dylib
373-
cp artifacts/js-macos-x86_64/js.dylib $FLUTTER_DIR/native_libraries/mac/js_mac_x64.dylib
374-
375-
# Linux
376-
mkdir -p $FLUTTER_DIR/native_libraries/linux
377-
cp artifacts/js-linux-x86_64/js.so $FLUTTER_DIR/native_libraries/linux/js_linux_x64.so
378-
cp artifacts/js-linux-arm64/js.so $FLUTTER_DIR/native_libraries/linux/js_linux_arm64.so
379-
380-
# Windows
381-
mkdir -p $FLUTTER_DIR/native_libraries/windows
382-
cp artifacts/js-windows-x86_64/js.dll $FLUTTER_DIR/native_libraries/windows/js_windows_x64.dll
383-
384-
# Update version
385-
sed -i "s/^version: .*/version: $VERSION/" $FLUTTER_DIR/pubspec.yaml
386-
387-
# Publish to pub.dev
388-
cd $FLUTTER_DIR
389-
dart pub get
390-
dart pub publish --dry-run
391-
dart pub publish --force
392-
393348
- uses: softprops/action-gh-release@v2.2.1
394349
if: steps.tag.outputs.version != ''
395350
with:

0 commit comments

Comments
 (0)