# 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