This document describes how to create a new release of linkdqueue using the automated GitHub Actions release workflow.
The release workflow (.github/workflows/release.yml) is triggered automatically whenever a Git tag matching the pattern v*.*.* is pushed to the repository. It builds the application for macOS, Linux, and Windows in parallel, then creates a GitHub Release with all three platform archives attached and auto-generated release notes.
- Write access to the
feoh/linkdqueuerepository - Git installed locally
- The
main(or release) branch in a clean, releasable state
Edit pubspec.yaml and increment the version field. The format is MAJOR.MINOR.PATCH+BUILD (e.g. 1.2.0+2).
version: 1.2.0+2Commit and push this change to the repository before tagging:
git add pubspec.yaml
git commit -m "Bump version to 1.2.0"
git pushTags must follow the v<MAJOR>.<MINOR>.<PATCH> format (e.g. v1.2.0). This is what triggers the release workflow.
git tag v1.2.0
git push origin v1.2.0Important: The tag version should match the version you set in
pubspec.yaml.
After pushing the tag:
- Go to the repository on GitHub: https://github.com/feoh/linkdqueue
- Click the Actions tab.
- You will see a workflow run named Release triggered by the new tag.
The workflow runs four jobs:
| Job | Runner | Output |
|---|---|---|
build-macos |
macos-latest |
linkdqueue-macos.zip |
build-linux |
ubuntu-latest |
linkdqueue-linux.tar.gz |
build-windows |
windows-latest |
linkdqueue-windows.zip |
release |
ubuntu-latest |
GitHub Release with all three archives |
The three build jobs run in parallel. The release job waits for all of them to succeed before publishing.
Once the workflow completes successfully:
- Go to the Releases section of the repository.
- Confirm the new release is listed with the correct tag name.
- Verify that the following assets are attached:
linkdqueue-macos.zip— macOS.appbundle (universal)linkdqueue-linux.tar.gz— Linux x64 bundlelinkdqueue-windows.zip— Windows x64 bundle
- Review the auto-generated release notes and edit them on GitHub if needed.
- Confirm the tag matches the
v*.*.*pattern exactly (e.g.v1.2.0, not1.2.0orrelease-1.2.0). - Confirm the tag was pushed to the remote (
git push origin <tag>).
- Click the failed job in the Actions tab to see the full log.
- Common causes: a dependency version mismatch or a Flutter API change. Update
pubspec.yamlor the Flutter version pin in the workflow file accordingly. - After fixing the issue, delete the tag locally and remotely, then re-create it:
git tag -d v1.2.0
git push origin :refs/tags/v1.2.0
# fix the problem, commit, then re-tag
git tag v1.2.0
git push origin v1.2.0- Confirm the
releasejob ran and check its logs. - The workflow requires
contents: writepermission. If this was changed, restore it in.github/workflows/release.yml.