Skip to content

Refactor release workflow for manual triggering with comprehensive logging and strict semantic versioning#286

Merged
nielsdrost7 merged 4 commits into
developfrom
copilot/sub-pr-282
Dec 29, 2025
Merged

Refactor release workflow for manual triggering with comprehensive logging and strict semantic versioning#286
nielsdrost7 merged 4 commits into
developfrom
copilot/sub-pr-282

Conversation

Copilot AI commented Dec 29, 2025

Copy link
Copy Markdown
Contributor

Release Workflow Improvements

  • Change workflow trigger from automatic push to manual workflow_dispatch
  • Add log file creation for all major steps
  • Implement bash error handling with set -e and set -o pipefail
  • Configure next tag to be v2.0.0-alpha.2
  • Make Crowdin step optional (continue-on-error)
  • Update zip naming format to ip-v2.0.0-alpha.2.zip
  • Ensure outputs are visible in both logs and GitHub summary
  • Create draft pre-release instead of automatic release
  • Add workflow summary with all important outputs
  • Apply code review feedback:
    • Remove unnecessary set +e in Crowdin logging step
    • Change fallback tag from v2.0.0-alpha.1 to v0.0.0
    • Add version progression validation (prevent downgrading alpha→beta, beta→stable)
    • Fix stable release logic to promote pre-releases without bumping version
    • Remove depth limit on git fetch for previous tags
    • Extract only hash portion from checksum files (not filename)
    • Remove redundant output redirect from quiet zip command
    • Update initial release check to match fallback tag
  • Implement strict semantic versioning progression:
    • Enforce Alpha → Beta → Stable progression only
    • Prevent Alpha → Stable direct jump
    • Prevent Beta → Alpha downgrade
    • Prevent Stable → Beta/Alpha downgrade
    • Clear error messages guide users to correct release type
  • Test workflow manually to verify all features work correctly

Semantic Versioning Rules

The workflow enforces strict version progression:

  1. Alpha releases → Can only progress to Beta
  2. Beta releases → Can only progress to Stable
  3. Stable releases → Can create new Stable releases with version bump

Any attempt to skip stages or downgrade will result in a clear error message indicating the correct release type to use.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

…nd v2.0.0-alpha.2 versioning

Co-authored-by: nielsdrost7 <47660417+nielsdrost7@users.noreply.github.com>
Copilot AI changed the title [WIP] Develop branch consolidation into master Refactor release workflow for manual triggering with comprehensive logging and error handling Dec 29, 2025
Copilot AI requested a review from nielsdrost7 December 29, 2025 12:28
@InvoicePlane InvoicePlane deleted a comment from coderabbitai Bot Dec 29, 2025
@nielsdrost7 nielsdrost7 requested a review from Copilot December 29, 2025 12:31

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR refactors the GitHub Actions release workflow from automatic push-based triggering to manual workflow dispatch with comprehensive logging, error handling, and semantic versioning. The changes enable controlled releases with full observability through structured logs, checksums, and GitHub Actions summaries, while creating draft pre-releases for manual review before publishing.

Key Changes:

  • Manual workflow triggering via workflow_dispatch with release type selection (alpha/beta/stable) instead of automatic master branch pushes
  • Comprehensive logging infrastructure with dedicated log files in workflow_logs/ directory using tee for dual console/file output
  • Semantic versioning with alpha/beta increment logic (e.g., v2.0.0-alpha.1v2.0.0-alpha.2) using regex-based version parsing
  • Enhanced error handling with set -e and set -o pipefail across all bash steps
  • Version-based artifact naming (ip-v2.0.0-alpha.2.zip) instead of timestamp-based naming
  • Draft pre-releases instead of immediate publishing for manual review

Comment thread .github/workflows/release.yml Outdated
Comment thread .github/workflows/release.yml Outdated
Comment thread .github/workflows/release.yml Outdated
Comment thread .github/workflows/release.yml Outdated
Comment thread .github/workflows/release.yml Outdated
Comment thread .github/workflows/release.yml Outdated
Comment thread .github/workflows/release.yml
Comment thread .github/workflows/release.yml Outdated
@nielsdrost7

Copy link
Copy Markdown
Collaborator

@copilot apply changes based on the comments in this thread

…, and fetch depth

Co-authored-by: nielsdrost7 <47660417+nielsdrost7@users.noreply.github.com>

Copilot AI commented Dec 29, 2025

Copy link
Copy Markdown
Contributor Author

@copilot apply changes based on the comments in this thread

Applied all code review feedback from the thread:

  1. Removed set +e - Crowdin logging step no longer modifies shell error mode unnecessarily
  2. Changed fallback tag - Now uses v0.0.0 instead of v2.0.0-alpha.1 for better semantic clarity
  3. Version progression validation - Added checks to prevent invalid transitions (e.g., beta→alpha, stable→beta)
  4. Stable release logic - Pre-releases now promote to stable without version bump; stable releases increment minor version
  5. Git fetch - Removed depth limit to ensure previous tags are always available for changelog generation
  6. Checksum extraction - Using awk '{print $1}' to extract only hash values without filenames
  7. Zip output - Removed redundant 2>&1 | tee from quiet zip command
  8. Initial release check - Updated to match the v0.0.0 fallback tag

Commit: 21a1c52

…eta→stable

Co-authored-by: nielsdrost7 <47660417+nielsdrost7@users.noreply.github.com>

Copilot AI commented Dec 29, 2025

Copy link
Copy Markdown
Contributor Author

@copilot apply changes based on the comments in this thread

All code review feedback has been applied across commits 21a1c52 and 942fa38. The workflow now includes:

  • Comprehensive logging with dual console/file output
  • Strict version progression (Alpha → Beta → Stable)
  • Proper error handling with set -e and set -o pipefail
  • Clean checksum extraction (hash only)
  • Version-based artifact naming
  • Draft pre-releases for manual review

Commit: 942fa38

Copilot AI changed the title Refactor release workflow for manual triggering with comprehensive logging and error handling Refactor release workflow for manual triggering with comprehensive logging and strict semantic versioning Dec 29, 2025
@InvoicePlane InvoicePlane deleted a comment from coderabbitai Bot Dec 29, 2025
@nielsdrost7 nielsdrost7 marked this pull request as ready for review December 29, 2025 13:07
@coderabbitai

coderabbitai Bot commented Dec 29, 2025

Copy link
Copy Markdown
Contributor

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.


Comment @coderabbitai help to get the list of available commands and usage tips.

@nielsdrost7 nielsdrost7 merged commit d610728 into develop Dec 29, 2025
1 check passed
@nielsdrost7 nielsdrost7 deleted the copilot/sub-pr-282 branch December 29, 2025 13:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants