-
Notifications
You must be signed in to change notification settings - Fork 3
131 lines (113 loc) · 4.93 KB
/
prep-plugin-releases.yml
File metadata and controls
131 lines (113 loc) · 4.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
name: Prepare Plugin Releases
on:
workflow_dispatch:
inputs:
proxy_version:
description: 'New Framework Proxy Version (x.y.z)'
required: true
ios_version:
description: 'iOS SDK Version (x.y.z - optional)'
required: false
android_version:
description: 'Android SDK Version (x.y.z - optional)'
required: false
test_mode:
description: 'Test mode (adds -test suffix to branches)'
type: boolean
default: false
react_native:
description: 'Update React Native'
type: boolean
default: true
cordova:
description: 'Update Cordova'
type: boolean
default: true
flutter:
description: 'Update Flutter'
type: boolean
default: true
capacitor:
description: 'Update Capacitor'
type: boolean
default: true
env:
GITHUB_TOKEN: ${{ secrets.MOBILE_PLUGIN_RELEASE_PAT }}
jobs:
centralized-plugin-releases:
runs-on: macos-26-xlarge
timeout-minutes: 20
steps:
- uses: actions/checkout@v4
- name: Setup Gemini CLI
uses: google-github-actions/run-gemini-cli@main
with:
gemini_api_key: ${{ secrets.GEMINI_API_KEY }}
continue-on-error: true
- name: Update plugins
id: update
run: |
# Build plugin filter args
PLUGIN_ARGS=""
if [ "${{ github.event.inputs.react_native }}" != "true" ]; then
PLUGIN_ARGS="$PLUGIN_ARGS --skip-react-native"
fi
if [ "${{ github.event.inputs.cordova }}" != "true" ]; then
PLUGIN_ARGS="$PLUGIN_ARGS --skip-cordova"
fi
if [ "${{ github.event.inputs.flutter }}" != "true" ]; then
PLUGIN_ARGS="$PLUGIN_ARGS --skip-flutter"
fi
if [ "${{ github.event.inputs.capacitor }}" != "true" ]; then
PLUGIN_ARGS="$PLUGIN_ARGS --skip-capacitor"
fi
# Add test mode flag if enabled
if [ "${{ github.event.inputs.test_mode }}" = "true" ]; then
PLUGIN_ARGS="$PLUGIN_ARGS --test"
fi
bash ./scripts/update_all_plugins.sh \
"${{ github.event.inputs.proxy_version }}" \
"${{ github.event.inputs.ios_version }}" \
"${{ github.event.inputs.android_version }}" \
$PLUGIN_ARGS
env:
GITHUB_TOKEN: ${{ secrets.MOBILE_PLUGIN_RELEASE_PAT }}
GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
- name: Display release summary
run: |
cat >> $GITHUB_STEP_SUMMARY << 'EOF'
## 📦 Plugin Release Summary
### Proxy Version
**${{ github.event.inputs.proxy_version }}**
### SDK Versions
- iOS: ${{ github.event.inputs.ios_version || 'from proxy' }}
- Android: ${{ github.event.inputs.android_version || 'from proxy' }}
### Plugin PRs
| Plugin | Version | Status |
|--------|---------|--------|
| React Native | ${{ steps.update.outputs.react_native_version }} | ${{ steps.update.outputs.react_native_pr_url }} |
| Cordova | ${{ steps.update.outputs.cordova_version }} | ${{ steps.update.outputs.cordova_pr_url }} |
| Flutter | ${{ steps.update.outputs.flutter_version }} | ${{ steps.update.outputs.flutter_pr_url }} |
| Capacitor | ${{ steps.update.outputs.capacitor_version }} | ${{ steps.update.outputs.capacitor_pr_url }} |
---
### Next Steps
1. Review each plugin PR (links above)
2. Merge when ready
⚠️ **Validation Note:** Changelogs across plugins will be similar since they update the same underlying SDKs. This is expected and correct.
EOF
- name: Notify Slack (Success)
if: success()
run: |
curl -X POST ${{ secrets.MOBILE_SLACK_WEBHOOK }} \
-H 'Content-Type: application/json' \
-d '{
"text": "✅ Centralized plugin releases complete for proxy v${{ github.event.inputs.proxy_version }}\n• React Native v${{ steps.update.outputs.react_native_version }}: ${{ steps.update.outputs.react_native_pr_url }}\n• Cordova v${{ steps.update.outputs.cordova_version }}: ${{ steps.update.outputs.cordova_pr_url }}\n• Flutter v${{ steps.update.outputs.flutter_version }}: ${{ steps.update.outputs.flutter_pr_url }}\n• Capacitor v${{ steps.update.outputs.capacitor_version }}: ${{ steps.update.outputs.capacitor_pr_url }}\n@mobile-team"
}' || true
- name: Notify Slack (Failure)
if: failure()
run: |
curl -X POST ${{ secrets.MOBILE_SLACK_WEBHOOK }} \
-H 'Content-Type: application/json' \
-d '{
"text": "❌ Centralized plugin release failed\nProxy version: ${{ github.event.inputs.proxy_version }}\nWorkflow: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}\n<@crow>"
}' || true