Bump Dev Version #1057
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Bump Dev Version | |
on: | |
workflow_dispatch: # Allows for manual triggering if needed | |
inputs: | |
updateType: | |
description: "Update Type" | |
required: true | |
default: "dev" | |
type: choice | |
options: | |
- dev | |
- patch+dev | |
- minor+dev | |
- major+dev | |
draft: | |
description: "PR as Draft" | |
required: false | |
type: boolean | |
default: false | |
schedule: | |
# * is a special character in YAML so you have to quote this string | |
- cron: "0 8 * * *" # Run every day at midnight Pacific Time | |
permissions: | |
contents: write | |
pull-requests: write | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
jobs: | |
bump-version: | |
if: ${{ github.repository == 'flutter/devtools' }} | |
name: Bump Version | |
runs-on: ubuntu-latest | |
steps: | |
- name: git clone devtools | |
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 | |
with: | |
ref: master | |
- uses: dart-lang/setup-dart@d6a63dab3335f427404425de0fbfed4686d93c4f | |
- name: setup git config | |
run: | | |
git config user.name "DevTools Workflow Bot" | |
git config user.email "[email protected]" | |
- name: Bump the Version | |
id: version-bump | |
run: | | |
set -ex | |
pushd tool/ | |
dart pub get | |
popd | |
ORIGINAL_VERSION=$(dart tool/update_version.dart current-version) | |
if [ -z "$UPDATE_TYPE" ]; then | |
# If $UPDATE_TYPE is not set, then assume it is dev | |
UPDATE_TYPE="dev" | |
fi | |
# If there is a major, minor, or patch bump, do it. | |
if [ "$UPDATE_TYPE" == "patch+dev" ]; then | |
dart tool/update_version.dart auto --type patch | |
dart tool/update_version.dart auto --type dev | |
elif [ "$UPDATE_TYPE" == "minor+dev" ]; then | |
dart tool/update_version.dart auto --type minor | |
dart tool/update_version.dart auto --type dev | |
elif [ "$UPDATE_TYPE" == "major+dev" ]; then | |
dart tool/update_version.dart auto --type major | |
dart tool/update_version.dart auto --type dev | |
elif [ "$UPDATE_TYPE" == "dev" ]; then | |
if ! echo "$ORIGINAL_VERSION" | grep -Eq "\-dev\.[0-9]+" ; then | |
ERROR_DESCRIPTION="Doing \ | |
a Dev bump on a release version ($ORIGINAL_VERSION) is not supported. \ | |
Ensure that that current version has been properly bumped to a '-dev.*' \ | |
pre-release version, in order to continue daily dev bumps." | |
echo "::error ,title=Cannot do a dev bump on a Release Version ($ORIGINAL_VERSION)::$ERROR_DESCRIPTION" | |
exit 1; | |
fi | |
dart tool/update_version.dart auto --type dev | |
else | |
echo "ERROR: UNEXPECTED UPDATE TYPE: $UPDATE_TYPE" | |
exit 1 | |
fi | |
NEW_VERSION=$(dart tool/update_version.dart current-version) | |
echo "COMMIT_MESSAGE=Updating from $ORIGINAL_VERSION to $NEW_VERSION" >> $GITHUB_OUTPUT | |
env: | |
UPDATE_TYPE: ${{ inputs.updateType }} | |
- name: Create the PR | |
run: | | |
set -ex | |
BRANCH_NAME="auto-bump-$(date +%s)" | |
# Stage the file, commit and push | |
git checkout -b "$BRANCH_NAME" | |
git commit -a -m "$COMMIT_MESSAGE" | |
git push -u origin "$BRANCH_NAME" | |
if [ "$IS_DRAFT" == "true" ]; then | |
CREATION_FLAGS="--draft" | |
fi | |
PR_URL=$(gh pr create --title "$COMMIT_MESSAGE" --body "Automated Version Bump" $CREATION_FLAGS) | |
# Change github credentials back to the actions bot. | |
GH_TOKEN="$ORIGINAL_GH_TOKEN" | |
gh pr edit $PR_URL $FLAGS --add-label "autosubmit" | |
env: | |
COMMIT_MESSAGE: ${{ steps.version-bump.outputs.COMMIT_MESSAGE }} | |
GH_TOKEN: ${{ secrets.DEVTOOLS_WORKFLOW_BOT_TOKEN }} | |
ORIGINAL_GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
IS_DRAFT: ${{ inputs.draft == true }} | |