Add tag-triggered release workflow with develop-branch safety check and tag-aligned versioning#33
Open
Add tag-triggered release workflow with develop-branch safety check and tag-aligned versioning#33
Conversation
Co-authored-by: gunicsba <3919203+gunicsba@users.noreply.github.com>
Co-authored-by: gunicsba <3919203+gunicsba@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Add automated GitHub Actions release workflow for NSIS installers
Add tag-triggered release workflow with develop-branch safety check and tag-aligned versioning
Mar 16, 2026
gunicsba
approved these changes
Mar 16, 2026
Contributor
|
@GwnDaan could you please check this? So we could maybe create somewhat regular releases? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds an automated GitHub Actions release pipeline that builds and publishes the NSIS installer when a
v*tag is pushed, with guards to ensure releases only originate fromdevelop.New:
.github/workflows/release.ymlv*tag pushesorigin/developviagit merge-base --is-ancestor; aborts before publishing if notvMAJOR.MINOR.PATCH-beta.Ntags →prerelease: true; all otherv*tags are stable releasesbuild.yml: checkout with submodules, NSIS via Chocolatey, CMake configure + package.exeas the sole asset usingsoftprops/action-gh-release@v2Updated:
CMakeLists.txtAt configure time,
git describe --tags --exact-match HEADis used to detect a tagged build. If the tag matchesvMAJOR.MINOR.PATCH[-beta.N], it overridesPROJECT_VERSION_*so thatCPACK_PACKAGE_VERSION(and therefore the installer filename) reflects the tag exactly — including the-beta.Nsuffix.Original prompt
Add an automated GitHub Actions release workflow for AgOpenGPS-Official/AOG-TaskController that builds and publishes NSIS installer releases from the develop branch when version tags are pushed.
Requirements:
Acceptance checks:
The following is the prior conversation context from the user's chat exploration (may be truncated):
User: Would you able to assist me in creating a workflow to do Task Controller RELEASES?
Assistant: Yes — I can help you set up a GitHub Actions “Release” workflow for AgOpenGPS-Official/AOG-TaskController that:
Buildworkflow does),What you have today (in
develop)You currently have:
.github/workflows/build.yml: builds onpushtomain/developand on PRs; uploads an artifact named “Windows Installer” frombuild/_CPack_Packages/win64/NSIS/*.exe.CMakeLists.txt: version is hard-coded as 1.2.0 viaPROJECT_VERSION_*and is also used by CPack/NSIS packaging.That’s perfect to base a Release workflow on.
Recommended release approach (simple + reliable)
Trigger releases from git tags
Create releases when you push a tag like:
v1.2.0v1.2.1This is the most common pattern and avoids accidentally releasing from random commits.
Workflow file to add:
.github/workflows/release.ymlThis workflow:
v*tag.exeinstaller to the Release