Repository navigation
build: add a Makefile for the build, test, lint and release commands - #23
Merged
Merged
Conversation
- make build, test, vet, lint, vuln, fmt, fmt-check, check, release, clean and help, in the style of migration-agent. - lint and vuln run pinned tool versions through go run, so the tools are built with the Go version of this module. - make check is the local gate before each merge (CI is skipped, #7). - make release makes the same archives as build.sh before, plus build/checksums.txt. build.sh is now a wrapper for make release, so the release workflow does not change. - README: document the targets. Closes #16
nabil1440
force-pushed
the
blockers/16-makefile
branch
from
September 22, 2026 06:36
211cd06 to
c09138d
Compare
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
Makefileadds these targets:build,test,vet,lint,vuln,fmt,fmt-check,check,release,cleanandhelp. The targets follow the migration-agent repository.make buildmakesbin/flywith the version, the commit and the date from git.make lintandmake vulnrun fixed tool versions throughgo run. Thus Go builds the tools with the Go version of this module.make checkrunsfmt-check,vet,lint,testandvuln. It is the local gate before each merge, because the team skipped enhancement(ci): add checks for pull requests and replace the archived release actions #7.make releasemakes the staticlinux/amd64andlinux/arm64archives andbuild/checksums.txt.VERSIONreplaces the version from git.build.shis now a wrapper formake release. Thus the release workflow does not change.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.make releasemakes the same archive names and contents as thebuild.shbefore this PR.Tests
make release VERSION=v9.9.9on macOS (GNU Make 3.81):build.sh. The files inbuild/are also the same.shasum -c checksums.txtpasses.fileshows two static, stripped binaries.fly-cli version v9.9.9../build.shin agolang:1.27linux/amd64 container (GNU Make 4.4.1) makes static binaries, and the checksums agree.make build:bin/fly versionshows the git version.make checkpasses: 0 lint issues, all tests pass, no vulnerabilities.make fmt-checkfails when a file is not formatted.Closes #16