diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index e5bfa28..9f438a5 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -7,6 +7,11 @@ on: description: "Release version (e.g., 1.2.3, without the 'v' prefix)" required: true type: string + prerelease: + description: "Mark this as a pre-release" + required: false + type: boolean + default: false permissions: contents: write @@ -20,17 +25,23 @@ jobs: env: VERSION: ${{ inputs.version }} run: | - if [[ ! "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+.*$ ]]; then + if [[ ! "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then echo "::error::Invalid version format '$VERSION'. Use X.X.X (e.g., 1.2.3)" exit 1 fi + - name: Compute full version + run: | + VERSION="${{ inputs.version }}" + if [[ "${{ inputs.prerelease }}" == "true" ]]; then + VERSION="${VERSION}-prerelease" + fi + echo "VERSION=${VERSION}" >> "$GITHUB_ENV" + - name: Check out code uses: actions/checkout@v5 - name: Check tag does not already exist - env: - VERSION: ${{ inputs.version }} run: | if git ls-remote --tags origin "refs/tags/v${VERSION}" | grep -q .; then echo "::error::Tag v${VERSION} already exists" @@ -46,14 +57,10 @@ jobs: run: go test -race ./... - name: Update manifest.json version - env: - VERSION: ${{ inputs.version }} run: | jq --arg v "$VERSION" '.version = $v' manifest.json > manifest.tmp && mv manifest.tmp manifest.json - name: Commit, tag, and push - env: - VERSION: ${{ inputs.version }} run: | git config user.name "github-actions[bot]" git config user.email "github-actions[bot]@users.noreply.github.com" @@ -74,7 +81,8 @@ jobs: - name: Create release uses: softprops/action-gh-release@v2 with: - tag_name: v${{ inputs.version }} + tag_name: v${{ env.VERSION }} draft: true + prerelease: ${{ inputs.prerelease }} files: discord-rich-presence.ndp generate_release_notes: true diff --git a/Makefile b/Makefile index bfc51d1..3781b0e 100644 --- a/Makefile +++ b/Makefile @@ -23,7 +23,7 @@ clean: rm -f $(WASM_FILE) $(PLUGIN_NAME).ndp release: - @if [[ ! "${V}" =~ ^[0-9]+\.[0-9]+\.[0-9]+.*$$ ]]; then echo "Usage: make release V=X.X.X"; exit 1; fi - gh workflow run create-release.yml -f version=${V} - @echo "Release v${V} workflow triggered. Check progress: gh run list --workflow=create-release.yml" + @if [[ ! "${V}" =~ ^[0-9]+\.[0-9]+\.[0-9]+$$ ]]; then echo "Usage: make release V=X.X.X [PRE=true]"; exit 1; fi + gh workflow run create-release.yml -f version=${V} -f prerelease=$(if $(filter true,$(PRE)),true,false) + @echo "Release v${V}$(if $(filter true,$(PRE)),-prerelease,) workflow triggered. Check progress: gh run list --workflow=create-release.yml" .PHONY: release