Skip to content

Flutter Candidate Update #168

Flutter Candidate Update

Flutter Candidate Update #168

name: Flutter Candidate Update
on:
workflow_dispatch: # Allows for manual triggering if needed
schedule:
# * is a special character in YAML so you have to quote this string
- cron: "0 8/12 * * *" # Run every day at midnight and noon Pacific Time
permissions:
contents: write
pull-requests: write
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
jobs:
update-candidate:
if: ${{ github.repository == 'flutter/devtools' }}
name: Update Flutter Candidate Version
runs-on: ubuntu-latest
steps:
- name: git clone devtools
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac
with:
ref: master
- uses: dart-lang/setup-dart@b64355ae6ca0b5d484f0106a033dd1388965d06d
- name: setup git config
run: |
git config user.name "DevTools Workflow Bot"
git config user.email "[email protected]"
- name: get the latest flutter candidate
run: |
set -ex
pushd tool/
dart pub get
popd
tool/latest_flutter_candidate.sh | sed 's|refs/tags/||' > flutter-candidate.txt
- name: Create the PR
run: |
set -ex
if ! [[ `git status --porcelain --untracked-files=no` ]]; then
# No changes made, so we can just exit.
echo "No change to the flutter-candidate.txt file"
exit
fi
COMMIT_MESSAGE="Changing Flutter Candidate to $(cat flutter-candidate.txt)"
BRANCH_NAME="auto-candidate-$(date +%s)"
# Stage the file, commit and push
git checkout -b "$BRANCH_NAME"
git add .
git commit -m "$COMMIT_MESSAGE"
git push -u origin "$BRANCH_NAME"
PR_URL=$(gh pr create --title "$COMMIT_MESSAGE" --body "Automated Flutter candidate version bump.")
# Change github credentials back to the actions bot.
GH_TOKEN="$ORIGINAL_GH_TOKEN"
gh pr edit $PR_URL --add-label "autosubmit"
env:
GH_TOKEN: ${{ secrets.DEVTOOLS_WORKFLOW_BOT_TOKEN }}
ORIGINAL_GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}