ci: install pinned Flutter SDK from git tag instead of missing image

Refs #31

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
cschlaefke 2026-11-02 20:24:50 +01:00
parent adf61b3ba2
commit 568f425ef7

View file

@ -9,6 +9,10 @@ on:
env:
SUPABASE_CLI_VERSION: 3.0.0
# Einzige Stelle für die Flutter-Version (= lokale Version, Dart 3.13.7; muss zu app/pubspec.yaml passen).
# Muss ein existierendes Tag in github.com/flutter/flutter sein. Ein Cirrus-Image mit dieser Version gibt es nicht.
FLUTTER_VERSION: 3.47.9
FLUTTER_HOME: /opt/flutter
jobs:
# Format, Analyse, Tests. Generierte Dateien (*.g.dart, gen-l10n) sind eingecheckt und
@ -16,7 +20,7 @@ jobs:
flutter:
runs-on: docker
container:
image: ghcr.io/cirruslabs/flutter:3.47.9 # = lokale Flutter-Version (Dart 3.13.7); in beiden Jobs gleich halten
image: node:22.12-bookworm # gepinnt; enthält git, curl, unzip, xz und Node (für JS-Actions)
env:
PUB_CACHE: ${{ github.workspace }}/.pub-cache
defaults:
@ -25,12 +29,33 @@ jobs:
steps:
- uses: https://code.forgejo.org/actions/checkout@v4
- name: Flutter-SDK-Cache
id: flutter-cache
uses: https://code.forgejo.org/actions/cache@v4
with:
path: ${{ env.FLUTTER_HOME }}
key: flutter-${{ env.FLUTTER_VERSION }}-node22.12-bookworm
- name: Flutter installieren
run: |
if [ ! -x "$FLUTTER_HOME/bin/flutter" ]; then
rm -rf "$FLUTTER_HOME"
git clone --depth 1 --branch "$FLUTTER_VERSION" https://github.com/flutter/flutter.git "$FLUTTER_HOME"
fi
echo "$FLUTTER_HOME/bin" >> "$GITHUB_PATH"
export PATH="$FLUTTER_HOME/bin:$PATH"
export CI=true
flutter config --no-analytics --enable-web
flutter --version
flutter precache --web
working-directory: .
- name: Pub-Cache
uses: https://code.forgejo.org/actions/cache@v4
with:
path: ${{ github.workspace }}/.pub-cache
key: pub-${{ hashFiles('app/pubspec.lock') }}
restore-keys: pub-
key: pub-${{ env.FLUTTER_VERSION }}-${{ hashFiles('app/pubspec.lock') }}
restore-keys: pub-${{ env.FLUTTER_VERSION }}-
- name: Abhängigkeiten (erzeugt auch gen-l10n)
run: flutter pub get
@ -61,7 +86,7 @@ jobs:
web-build:
runs-on: docker
container:
image: ghcr.io/cirruslabs/flutter:3.47.9
image: node:22.12-bookworm # gepinnt; enthält git, curl, unzip, xz und Node (für JS-Actions)
env:
PUB_CACHE: ${{ github.workspace }}/.pub-cache
defaults:
@ -70,12 +95,33 @@ jobs:
steps:
- uses: https://code.forgejo.org/actions/checkout@v4
- name: Flutter-SDK-Cache
id: flutter-cache
uses: https://code.forgejo.org/actions/cache@v4
with:
path: ${{ env.FLUTTER_HOME }}
key: flutter-${{ env.FLUTTER_VERSION }}-node22.12-bookworm
- name: Flutter installieren
run: |
if [ ! -x "$FLUTTER_HOME/bin/flutter" ]; then
rm -rf "$FLUTTER_HOME"
git clone --depth 1 --branch "$FLUTTER_VERSION" https://github.com/flutter/flutter.git "$FLUTTER_HOME"
fi
echo "$FLUTTER_HOME/bin" >> "$GITHUB_PATH"
export PATH="$FLUTTER_HOME/bin:$PATH"
export CI=true
flutter config --no-analytics --enable-web
flutter --version
flutter precache --web
working-directory: .
- name: Pub-Cache
uses: https://code.forgejo.org/actions/cache@v4
with:
path: ${{ github.workspace }}/.pub-cache
key: pub-${{ hashFiles('app/pubspec.lock') }}
restore-keys: pub-
key: pub-${{ env.FLUTTER_VERSION }}-${{ hashFiles('app/pubspec.lock') }}
restore-keys: pub-${{ env.FLUTTER_VERSION }}-
- name: Abhängigkeiten
run: flutter pub get