blob: 53bec778517462372950b0e5491f31addee79f4b [file] [log] [blame]
name: Flutter Candidate Update
on:
workflow_dispatch: # Allows for manual triggering if needed
# TODO(https://github.com/flutter/devtools/issues/7939): Re-enable once Flutter candidates
# are tagged again.
# 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@08c6903cd8c0fde910a37f88322edcfb5dd907a8
with:
ref: master
- uses: dart-lang/setup-dart@e51d8e571e22473a2ddebf0ef8a2123f0ab2c02c
- name: setup git config
run: |
git config user.name "DevTools Workflow Bot"
git config user.email "dart-devtool-workflow-bot@google.com"
- 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 }}