diff --git a/.github/workflows/release-desktop.yml b/.github/workflows/release-desktop.yml index bd9e704f..53601b99 100644 --- a/.github/workflows/release-desktop.yml +++ b/.github/workflows/release-desktop.yml @@ -587,7 +587,7 @@ jobs: tag_name: v${{ steps.version.outputs.value }} name: Claude Code Haha v${{ steps.version.outputs.value }} body: ${{ steps.release_notes.outputs.body }} - draft: ${{ github.event_name == 'workflow_dispatch' && inputs.draft || false }} + draft: ${{ github.event_name == 'workflow_dispatch' && inputs.draft == true }} prerelease: false fail_on_unmatched_files: true files: | @@ -599,3 +599,9 @@ jobs: artifacts/release-assets/**/*.blockmap artifacts/update-metadata-standard/*.yml desktop/scripts/install-macos-unsigned.sh + + - name: Ensure workflow-dispatch release remains draft + if: github.event_name == 'workflow_dispatch' && inputs.draft == true + env: + GH_TOKEN: ${{ github.token }} + run: gh release edit "v${{ steps.version.outputs.value }}" --draft --repo "${{ github.repository }}" diff --git a/scripts/pr/release-workflow.test.ts b/scripts/pr/release-workflow.test.ts index d8089e40..f6964e86 100644 --- a/scripts/pr/release-workflow.test.ts +++ b/scripts/pr/release-workflow.test.ts @@ -285,6 +285,10 @@ describe('release desktop workflow', () => { expect(publishJob).toContain('artifacts/release-assets/**/*.blockmap') expect(publishJob).toContain('artifacts/update-metadata-standard/*.yml') expect(publishJob).toContain('desktop/scripts/install-macos-unsigned.sh') + expect(publishJob).toContain("draft: ${{ github.event_name == 'workflow_dispatch' && inputs.draft == true }}") + expect(publishJob).toContain('Ensure workflow-dispatch release remains draft') + expect(publishJob).toContain("if: github.event_name == 'workflow_dispatch' && inputs.draft == true") + expect(publishJob).toContain('gh release edit "v${{ steps.version.outputs.value }}" --draft --repo "${{ github.repository }}"') expect(publishJob).toContain('fail_on_unmatched_files: true') expect(publishJob).toContain('Load release notes') expect(workflow.indexOf('publish-release:')).toBeGreaterThan(workflow.indexOf('build:'))