diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a82b9ca..704dcb5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,49 +1,60 @@ name: release on: - repository_dispatch: - types: [release] + workflow_dispatch: + inputs: + version: + description: Version to release + required: false + skip_prepare: + description: Skip preparation step (assume a release branch is ready) + required: false + default: false + dry_run: + description: Do not actually cut the release + required: false + default: false schedule: # We want the release to be at 10 or 11am Pacific Time # We also make this an hour after all others such as Sentry, # Snuba, and Relay to make sure their releases finish. - cron: '0 18 15 * *' jobs: release: runs-on: ubuntu-latest name: "Release a new version" steps: - id: calver - if: ${{ !github.event.client_payload.version }} + if: ${{ !github.event.inputs.version }} run: | DATE_PART=$(date +'%y.%-m') - PATCH_VERSION=0 + declare -i PATCH_VERSION=0 while curl -sf -o /dev/null "https://api.github.com/repos/$GITHUB_REPOSITORY/git/ref/tags/$DATE_PART.$PATCH_VERSION"; do - (( PATCH_VERSION++ )) + PATCH_VERSION+=1 done echo "::set-output name=version::$DATE_PART.$PATCH_VERSION" - uses: actions/checkout@v2 - uses: getsentry/craft@master - if: ${{ !github.event.client_payload.skip_prepare }} + if: ${{ !github.event.inputs.skip_prepare }} with: action: prepare - version: ${{ github.event.client_payload.version || steps.calver.outputs.version }} + version: ${{ github.event.inputs.version || steps.calver.outputs.version }} env: - DRY_RUN: ${{ github.event.client_payload.dry_run }} + DRY_RUN: ${{ github.event.inputs.dry_run }} GIT_COMMITTER_NAME: getsentry-bot GIT_AUTHOR_NAME: getsentry-bot EMAIL: bot@getsentry.com # Wait until the builds start. Craft should do this automatically # but it is broken now. # TODO: Remove this once getsentry/craft#111 is fixed - run: sleep 10 - uses: getsentry/craft@master with: action: publish - version: ${{ github.event.client_payload.version || steps.calver.outputs.version }} + version: ${{ github.event.inputs.version || steps.calver.outputs.version }} keep_branch: '--keep-branch' no_merge: '--no-merge' env: - DRY_RUN: ${{ github.event.client_payload.dry_run }} + DRY_RUN: ${{ github.event.inputs.dry_run }} GIT_COMMITTER_NAME: getsentry-bot GIT_AUTHOR_NAME: getsentry-bot EMAIL: bot@getsentry.com