b0207c9972
CI / flutter-gates (push) Failing after 5m2s
- format/analyze/test 三连,与本地门禁同一套命令 - Flutter SDK 从 flutter-io.cn 下载并缓存于 runner toolcache 卷,pub 走国内镜像 - checkout 手动克隆本 Gitea 实例,concurrency 取消旧 run
55 lines
2.3 KiB
YAML
55 lines
2.3 KiB
YAML
# Gitea Actions 门禁:与 docs/development/git-workflow.md 的本地门禁同一套命令。
|
||
# 零外部 action / 零 GitHub 依赖(原因见 patbond-api 的 ci.yml 头注释)。
|
||
# Flutter SDK 从中国镜像(flutter-io.cn)下载并缓存在 runner 的 toolcache 卷中,
|
||
# 首跑约需下载 ~900MB,之后复用缓存秒级就绪。
|
||
# 前提:runner config.yaml 的 container.options 挂载了 toolcache 卷:
|
||
# options: "-v /var/run/docker.sock:/var/run/docker.sock -v gitea_toolcache:/opt/hostedtoolcache"
|
||
name: CI
|
||
|
||
on:
|
||
push:
|
||
branches: [dev]
|
||
pull_request:
|
||
|
||
concurrency:
|
||
group: ci-${{ github.ref }}
|
||
cancel-in-progress: true
|
||
|
||
jobs:
|
||
flutter-gates:
|
||
runs-on: ubuntu-latest
|
||
steps:
|
||
- name: Checkout (manual)
|
||
run: |
|
||
git init -q .
|
||
AUTH_URL=$(echo "${{ github.server_url }}" | sed "s#https://#https://oauth2:${{ github.token }}@#")
|
||
git remote add origin "$AUTH_URL/${{ github.repository }}.git"
|
||
git fetch -q --depth 1 origin "+${{ github.ref }}:refs/ci-head"
|
||
git checkout -q refs/ci-head
|
||
- name: Install Flutter (flutter-io.cn mirror, toolcache reuse)
|
||
run: |
|
||
FLUTTER_VERSION=3.44.6
|
||
FLUTTER_HOME=/opt/hostedtoolcache/flutter-$FLUTTER_VERSION
|
||
if [ ! -x "$FLUTTER_HOME/bin/flutter" ]; then
|
||
echo "Downloading Flutter $FLUTTER_VERSION from flutter-io.cn ..."
|
||
curl -fsSL -o /tmp/flutter.tar.xz \
|
||
"https://storage.flutter-io.cn/flutter_infra_release/releases/stable/linux/flutter_linux_${FLUTTER_VERSION}-stable.tar.xz"
|
||
mkdir -p /opt/hostedtoolcache
|
||
tar -xf /tmp/flutter.tar.xz -C /tmp
|
||
mv /tmp/flutter "$FLUTTER_HOME"
|
||
else
|
||
echo "Reusing cached Flutter at $FLUTTER_HOME"
|
||
fi
|
||
git config --global --add safe.directory "$FLUTTER_HOME"
|
||
echo "$FLUTTER_HOME/bin" >> "$GITHUB_PATH"
|
||
echo "PUB_HOSTED_URL=https://pub.flutter-io.cn" >> "$GITHUB_ENV"
|
||
echo "FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn" >> "$GITHUB_ENV"
|
||
# 与本地门禁同一套命令(git-workflow.md)
|
||
- name: Gates
|
||
run: |
|
||
flutter --version
|
||
flutter pub get
|
||
dart format --output=none --set-exit-if-changed lib test
|
||
flutter analyze
|
||
flutter test
|