name: Publish GitHub release on: push: branches: [main] paths: - "pyproject.toml" workflow_dispatch: permissions: contents: write concurrency: group: github-release-${{ github.ref }} cancel-in-progress: false jobs: github-release: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Read package version id: package run: | version="$(python3 -c 'import tomllib; print(tomllib.load(open("pyproject.toml", "rb"))["project"]["version"])')" echo "version=${version}" >> "${GITHUB_OUTPUT}" - name: Create annotated release notes and tag env: GH_TOKEN: ${{ github.token }} VERSION: ${{ steps.package.outputs.version }} run: | set -euo pipefail tag="v${VERSION}" notes="docs/releases/${tag}.md" test -s "${notes}" if gh release view "${tag}" >/dev/null 2>&1; then echo "GitHub Release ${tag} already exists; leaving it unchanged" exit 0 fi gh release create "${tag}" --target "${GITHUB_SHA}" --title "ComfyUI Scale-Locked Residual Diffusion ${tag}" --notes-file "${notes}" --latest