1
+ name : release_publish
2
+
3
+ on :
4
+ push :
5
+ tags :
6
+ - ' v[0-9]+.[0-9]+.[0-9]+' # tag-pattern for regular releases
7
+ - ' v[0-9]+.[0-9]+.[0-9]+-*' # tag-pattern for pre-releases
8
+ workflow_dispatch : # Allow manual triggering of the workflow
9
+
10
+ concurrency :
11
+ group : ${{ github.workflow }}-${{ github.ref }}
12
+ cancel-in-progress : true
13
+
14
+ jobs :
15
+ release :
16
+ permissions :
17
+ contents : write # Required to creating release
18
+ id-token : write # Required for authentication using OIDC
19
+ runs-on : ubuntu-latest
20
+ steps :
21
+ - name : 📚 Checkout branch
22
+ uses : actions/checkout@v4
23
+ with :
24
+ fetch-depth : 0
25
+ token : ${{ secrets.BOT_GITHUB_API_TOKEN }}
26
+
27
+ # Set up the Dart SDK and provision the OIDC token used for publishing.
28
+ - name : 🎯 Setup Dart
29
+ uses : dart-lang/setup-dart@v1
30
+
31
+ - name : 🐦 Install Flutter
32
+ uses : subosito/flutter-action@v2
33
+
34
+ - name : 📦 Install Tools
35
+ run : flutter pub global activate melos
36
+
37
+ - name : 🔧 Bootstrap Workspace
38
+ run : melos bootstrap --verbose
39
+
40
+ - name : 🌵 Dry Run
41
+ run : melos run lint:pub
42
+
43
+ - name : 📢 Release to pub.dev
44
+ run : melos run release:pub
45
+
46
+ - name : 🏷️ Extract Version Info
47
+ id : extract_version
48
+ shell : bash
49
+ run : |
50
+ set -euo pipefail
51
+
52
+ tag_name="${{ github.ref_name }}"
53
+ echo "📦 Tag: $tag_name"
54
+
55
+ # Check if this is a pre-release (contains hyphen after version)
56
+ is_prerelease=$([[ $tag_name == *-* ]] && echo true || echo false)
57
+ echo "ℹ️ Pre-release: $is_prerelease"
58
+
59
+ echo "tag=$tag_name" >> "$GITHUB_OUTPUT"
60
+ echo "prerelease=$is_prerelease" >> "$GITHUB_OUTPUT"
61
+
62
+ - name : 🚀 Create GitHub Release
63
+ uses : softprops/action-gh-release@v2
64
+ with :
65
+ generate_release_notes : true
66
+ tag_name : ${{ steps.extract_version.outputs.tag }}
67
+ prerelease : ${{ steps.extract_version.outputs.prerelease }}
68
+ token : ${{ secrets.BOT_GITHUB_API_TOKEN }}
0 commit comments