Bump Dev Version #626
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: | |
flutter-prep: | |
uses: ./.github/workflows/flutter-prep.yaml | |
bump-version: | |
needs: flutter-prep | |
if: ${{ github.repository == 'flutter/devtools' }} | |
name: Bump Version | |
runs-on: ubuntu-latest | |
steps: | |
- name: git clone devtools | |
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac | |
with: | |
ref: master | |
- uses: dart-lang/setup-dart@b64355ae6ca0b5d484f0106a033dd1388965d06d | |
- name: Load Cached Flutter SDK | |
uses: actions/cache@704facf57e6136b1bc63b828d79edcd491f0ee84 | |
with: | |
path: | | |
./tool/flutter-sdk | |
key: flutter-sdk-${{ runner.os }}-${{ needs.flutter-prep.outputs.latest_flutter_candidate }} | |
- 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 | |
# Ensure the devtools_tool command is available | |
export PATH="$PATH":`pwd`/tool/bin | |
ORIGINAL_VERSION=$(devtools_tool update-version current-version | tail -1) | |
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 | |
devtools_tool update-version auto --type patch | |
devtools_tool update-version auto --type dev | |
elif [ "$UPDATE_TYPE" == "minor+dev" ]; then | |
devtools_tool update-version auto --type minor | |
devtools_tool update-version auto --type dev | |
elif [ "$UPDATE_TYPE" == "major+dev" ]; then | |
devtools_tool update-version auto --type major | |
devtools_tool update-version 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 | |
devtools_tool update-version auto --type dev | |
else | |
echo "ERROR: UNEXPECTED UPDATE TYPE: $UPDATE_TYPE" | |
exit 1 | |
fi | |
NEW_VERSION=$(devtools_tool update-version current-version | tail -1) | |
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 }} |