/
magnusroot
/
flutter
Обзор
Документация
Войти
/
magnusroot
/
flutter
Код
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
.github/workflows/sync-engine-version.yml
98 строк
3 KB
John "codefu" McDole
fix(ci): harden some workflows (#189087)
08 июл 2026, 22:06
Не верифицирован
08 июл 2026, 22:06
6cbdfac
Код
Авторство
О чём код?
name: Sync Engine Version on: workflow_dispatch: jobs: sync-engine: runs-on: ubuntu-latest permissions: contents: write pull-requests: write steps: - name: Checkout Repository uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: repository: flutteractionsbot/flutter token: ${{ secrets.FLUTTERACTIONSBOT_CP_TOKEN }} ref: master persist-credentials: false - name: Configure git run: | gh auth setup-git git config --global user.name "flutteractionsbot" git config --global user.email "<flutter-actions-bot@google.com>" env: GH_TOKEN: ${{ secrets.FLUTTERACTIONSBOT_CP_TOKEN }} - name: Fetch upstream run: | git remote add upstream https://github.com/flutter/flutter.git git fetch upstream $REF_NAME BRANCH_NAME="update-engine-$(date +%s)" echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV git checkout -b "$BRANCH_NAME" upstream/$REF_NAME env: GH_TOKEN: ${{ secrets.FLUTTERACTIONSBOT_CP_TOKEN }} REF_NAME: ${{ github.ref_name }} - name: Generate and Capture Hash id: generate-hash run: | # Capture the OLD hash (handle case where file doesn't exist) if [ -f bin/internal/engine.version ]; then OLD_HASH=$(< bin/internal/engine.version) else OLD_HASH="None (New File)" fi echo "OLD_HASH=$OLD_HASH" >> $GITHUB_ENV chmod +x bin/internal/last_engine_commit.sh NEW_HASH=$(./bin/internal/last_engine_commit.sh) echo "$NEW_HASH" > bin/internal/engine.version echo "ENGINE_HASH=$NEW_HASH" >> $GITHUB_ENV - name: Check for Changes id: git-check run: | # -f adds even if it's in the .gitignore (which it usually is) git add -f bin/internal/engine.version if git diff --cached --exit-code bin/internal/engine.version; then echo "changed=false" >> $GITHUB_OUTPUT # Nice big No-Op Summary echo "## ✅ Engine version already up to date" >> $GITHUB_STEP_SUMMARY echo "The engine is already at hash \`$ENGINE_HASH\`. No PR was created." >> $GITHUB_STEP_SUMMARY else echo "changed=true" >> $GITHUB_OUTPUT fi - name: Create PR if Changed if: steps.git-check.outputs.changed == 'true' run: | gh auth setup-git git commit -m "Update engine.version to $ENGINE_HASH" git push origin "$BRANCH_NAME" # Capture the PR URL PR_URL=$(gh pr create \ --title "[$REF_NAME] Sync engine.version to $ENGINE_HASH" \ --body "Updates the engine.version file from \`$OLD_HASH\` to \`$ENGINE_HASH\`." \ --repo flutter/flutter \ --base $REF_NAME \ --head flutteractionsbot:$BRANCH_NAME) # Nice big PR Success Summary echo "## 🚀 PR Created Successfully" >> $GITHUB_STEP_SUMMARY echo "Updated engine version from \`$OLD_HASH\` to \`$ENGINE_HASH\`." >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo "🔗 **View Pull Request:** $PR_URL" >> $GITHUB_STEP_SUMMARY env: GH_TOKEN: ${{ secrets.FLUTTERACTIONSBOT_CP_TOKEN }} REF_NAME: ${{ github.ref_name }}