ci: run make check on every change and publish releases with gh - #25
Merged
Merged
Conversation
nabil1440
added this pull request to stack #24
September 22, 2026 04:16
- ci.yml: run make check and make release on every pull request and on pushes to develop and main. GitHub Actions are free for this public repository. - build.yml (release): one job on actions/checkout@v7 and actions/setup-go@v7. It checks that the tag is on main, runs make check, builds with make release VERSION=<tag> and publishes with gh release create: both archives plus checksums.txt, titled with the tag. A tag with a pre-release suffix becomes a pre-release, so installed CLIs do not update to it. - Remove the archived create-release and upload-release-asset actions and the build.sh wrapper, which nothing calls now. - README: document CI and the release steps. Asset names and the archive layout are unchanged. Closes #7
- make dev-version prints <next minor>-dev.<short commit>, for example v0.2.0-dev.1a2b3c4. DEV_BASE overrides the version part. - make dev-release tags HEAD with it and pushes the tag. It refuses uncommitted changes, commits that are not pushed, and commits whose release workflow would publish the tag as a full release. - The Release workflow allows pre-release tags from any branch. It publishes them as pre-releases, so /releases/latest (and so fly update and install.sh) never returns them. Release tags without a suffix must still be on main. - README: document dev pre-releases and how to install one on a test server. Part of #7
nabil1440
force-pushed
the
blockers/7-ci
branch
from
September 22, 2026 06:36
b41348a to
fdf62c0
Compare
This was referenced Sep 22, 2026
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.
Change
ci.ymlrunsmake checkandmake releaseon each pull request and on each push todevelopandmain.develop.build.yml(the release workflow) is now one job:main. If it is not, the release stops.make check.make releasewith the tag asVERSION.gh release createwith the two archives andchecksums.txt. The release title is the tag.v0.2.0-rc.1) becomes a pre-release./releases/latestdoes not return a pre-release, thus installed CLIs do not update to it.main.make dev-versionshows<next minor version>-dev.<short commit>, for examplev0.2.0-dev.1a2b3c4.make dev-releasetags the commit with it and pushes the tag. Then CI publishes the pre-release.make dev-releaserefuses uncommitted changes and commits that are not pushed. It also refuses a commit if its release workflow would publish the tag as a full release.actions/checkout@v7andactions/setup-go@v7. This PR removes the archivedcreate-releaseandupload-release-assetactions.build.sh, because no workflow calls it now.Caution
CAUTION: DO NOT CHANGE THE NAMES OR THE CONTENTS OF THE RELEASE ASSETS. IF YOU CHANGE THEM, THE INSTALLED CLIS CANNOT RUN
fly update.fly-linux-<arch>.tar.gzand the binary namesfly-linux-<arch>in the archives.Tests
actionlintfinds no problems in the two workflows.ghreplaced by a stub:origin/mainpasses the tag check. The top of this stack stops with the error.v0.2.0gives a release.v0.2.0-rc.1gives a pre-release.gh release create --helpshows each flag that the workflow uses.make checkpasses on this branch.make dev-versionshowsv0.2.0-dev.<sha>, andDEV_BASEchanges the version part.make dev-releaserefuses uncommitted changes and a commit that is not pushed. The check of the release workflow refuses the lower layers of this stack and accepts this layer.ci.yml.The first real test of the release workflow is the next tag on
main.Closes #7