name: release
on:
repository_dispatch:
types: [release]
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 }}
run: |
DATE_PART=$(date +'%y.%-m')
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++ ))
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 }}
with:
action: prepare
version: ${{ github.event.client_payload.version || steps.calver.outputs.version }}
env:
DRY_RUN: ${{ github.event.client_payload.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
action: publish
keep_branch: '--keep-branch'
no_merge: '--no-merge'