diff --git a/.github/workflows/build-hatch.yml b/.github/workflows/build-hatch.yml index 579c61b3d..825d9c619 100644 --- a/.github/workflows/build-hatch.yml +++ b/.github/workflows/build-hatch.yml @@ -582,7 +582,7 @@ jobs: path: installers merge-multiple: true - - name: Add assets to current release + - name: Add assets to draft release uses: softprops/action-gh-release@v2 with: files: |- diff --git a/.github/workflows/build-hatchling.yml b/.github/workflows/build-hatchling.yml index c7fa53059..c5d4a087f 100644 --- a/.github/workflows/build-hatchling.yml +++ b/.github/workflows/build-hatchling.yml @@ -43,6 +43,7 @@ jobs: runs-on: ubuntu-latest permissions: + contents: write id-token: write steps: @@ -55,3 +56,8 @@ jobs: uses: pypa/gh-action-pypi-publish@v1.12.3 with: skip-existing: true + + - name: Add assets to draft release + uses: softprops/action-gh-release@v2 + with: + files: dist/* diff --git a/scripts/release_github.py b/scripts/release_github.py index b22065dcc..52b3dac40 100644 --- a/scripts/release_github.py +++ b/scripts/release_github.py @@ -1,4 +1,6 @@ import argparse +import subprocess +import sys import webbrowser from urllib.parse import urlencode @@ -11,17 +13,29 @@ def main(): args = parser.parse_args() version, notes = get_latest_release(args.project) - + tag = f"{args.project}-v{version}" + + # Create and push tag first + try: + subprocess.run(["git", "tag", tag], check=True) + subprocess.run(["git", "push", "origin", tag], check=True) + print(f"Created and pushed tag: {tag}") + except subprocess.CalledProcessError as e: + print(f"Error creating tag: {e}") + sys.exit(1) + + # Open GitHub UI to create draft release params = urlencode({ "title": f"{args.project.capitalize()} v{version}", - "tag": f"{args.project}-v{version}", + "tag": tag, "body": notes, - "prerelease": "true", + "draft": "true", }) url = f"https://github.com/pypa/hatch/releases/new?{params}" webbrowser.open_new_tab(url) + if __name__ == "__main__": main()