name: Create Draft Release on: pull_request: types: - closed permissions: {} jobs: create-draft-release: if: github.event.pull_request.merged == true && contains(github.event.pull_request.labels.*.name, 'release') runs-on: ubuntu-latest timeout-minutes: 5 permissions: contents: write pull-requests: read steps: - name: Dump GitHub context env: GITHUB_CONTEXT: ${{ toJson(github) }} run: echo "$GITHUB_CONTEXT" - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: ref: ${{ github.event.repository.default_branch }} persist-credentials: false - name: Set up Python uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version-file: ".python-version" - name: Install uv uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 with: version: "latest-known" - name: Extract release details id: release-details run: | set -euo pipefail version="$(uv run python scripts/prepare_release.py current-version)" uv run python scripts/prepare_release.py release-notes > draft-release-notes.md echo "version=$version" >> "$GITHUB_OUTPUT" - name: Create draft release env: GH_TOKEN: ${{ github.token }} VERSION: ${{ steps.release-details.outputs.version }} run: | set -euo pipefail gh release create "$VERSION" \ --draft \ --title "$VERSION" \ --notes-file draft-release-notes.md \ --target "$(git rev-parse HEAD)"