name: Release on: workflow_dispatch: inputs: version: description: Version to release (optional) required: false force: description: Force a release even when there are release-blockers (optional) required: 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 * *" permissions: contents: read jobs: release: if: github.repository_owner == 'getsentry' runs-on: ubuntu-latest name: "Release a new version" steps: - name: Get auth token id: token uses: actions/create-github-app-token@67018539274d69449ef7c02e8e71183d1719ab42 # v2.1.4 with: app-id: ${{ vars.SENTRY_RELEASE_BOT_CLIENT_ID }} private-key: ${{ secrets.SENTRY_RELEASE_BOT_PRIVATE_KEY }} - uses: actions/checkout@v5 with: token: ${{ steps.token.outputs.token }} fetch-depth: 0 - name: Prepare release id: prepare-release uses: getsentry/action-prepare-release@v1 env: GITHUB_TOKEN: ${{ steps.token.outputs.token }} with: version: ${{ github.event.inputs.version }} force: ${{ github.event.inputs.force }} calver: true outputs: release-version: ${{ env.RELEASE_VERSION }} dogfood-release: if: github.repository_owner == 'getsentry' runs-on: ubuntu-latest name: Create release on self-hosted dogfood instance needs: release steps: - uses: actions/checkout@v5 with: fetch-depth: 0 - uses: getsentry/action-release@v3 env: SENTRY_ORG: self-hosted SENTRY_PROJECT: installer SENTRY_URL: https://self-hosted.getsentry.net/ SENTRY_AUTH_TOKEN: ${{ secrets.SELF_HOSTED_RELEASE_TOKEN }} with: environment: production version: ${{ needs.release.outputs.release-version }} ignore_empty: true ignore_missing: true