-
Notifications
You must be signed in to change notification settings - Fork 0
62 lines (55 loc) · 2.25 KB
/
Copy pathupdate-flutter.yml
File metadata and controls
62 lines (55 loc) · 2.25 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
name: Update Flutter stable version
on:
schedule:
- cron: "23 6 * * *"
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
update:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Find latest stable Flutter version
id: latest
shell: bash
run: |
set -euo pipefail
latest=$(
curl --fail --silent https://storage.googleapis.com/flutter_infra_release/releases/releases_linux.json \
| jq -r '.current_release.stable as $stable | .releases[] | select(.hash == $stable) | .version'
)
if [ -z "$latest" ] || [ "$latest" = "null" ]; then
echo "Could not resolve latest Flutter release" >&2
exit 1
fi
echo "version=$latest" >> "$GITHUB_OUTPUT"
- name: Update versions.env
id: update
shell: bash
run: |
set -euo pipefail
current=$(grep '^FLUTTER_STABLE_VERSION=' versions.env | cut -d= -f2- || true)
if [ "$current" = "${{ steps.latest.outputs.version }}" ]; then
echo "changed=false" >> "$GITHUB_OUTPUT"
exit 0
fi
tmp=$(mktemp)
awk -F= -v latest="${{ steps.latest.outputs.version }}" \
'BEGIN { updated=0 } /^FLUTTER_STABLE_VERSION=/ { print "FLUTTER_STABLE_VERSION=" latest; updated=1; next } { print } END { if (!updated) print "FLUTTER_STABLE_VERSION=" latest }' \
versions.env > "$tmp"
mv "$tmp" versions.env
echo "changed=true" >> "$GITHUB_OUTPUT"
- name: Create pull request
if: steps.update.outputs.changed == 'true'
uses: peter-evans/create-pull-request@v8
with:
branch: bot/update-flutter-${{ steps.latest.outputs.version }}
commit-message: "chore: update Flutter to ${{ steps.latest.outputs.version }}"
title: "chore: update Flutter to ${{ steps.latest.outputs.version }}"
body: |
Updates the base image Flutter SDK version to `${{ steps.latest.outputs.version }}`.
The publish workflow will build and push:
- `ghcr.io/solvro/flutter-web-only:${{ steps.latest.outputs.version }}`
labels: dependencies, flutter