Proposal: Makefile for unified build orchestration#117
Draft
dougborg wants to merge 1 commit intoFoggedLens:mainfrom
Draft
Proposal: Makefile for unified build orchestration#117dougborg wants to merge 1 commit intoFoggedLens:mainfrom
dougborg wants to merge 1 commit intoFoggedLens:mainfrom
Conversation
Asset generation (icons, splash screens) is gitignored and must run before any build. This step was duplicated across shell scripts and CI workflows. A Makefile with dependency-tracked targets ensures assets are always generated first, whether building locally or in CI. - Makefile uses stamp files (.stamps/) to track multi-output steps - CI workflows (pr.yml, workflow.yml) delegate to Make targets - gen_icons_splashes.sh removed (superseded by make generate-assets) - do_builds.sh and app2ipa.sh kept (handle release signing/creds) - DEVELOPER.md and README.md updated with Make commands Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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.
Summary
This is a proposal / proof-of-concept — not intended for immediate merge. It demonstrates what a Make-driven build system would look like for this project.
Makefilewith dependency-tracked targets and stamp files (.stamps/) so asset generation (icons, splash) always runs before builds, and skips when freshflutter pub get+dart run ...+flutter buildinto a singlemakecallgen_icons_splashes.sh— superseded bymake generate-assetsdo_builds.shandapp2ipa.sh— they handle release signing and credential logic that doesn't belong in MakeWhat changes in CI
PR workflow (
pr.yml):make ci(runs analyze + test)build-debug-apkandbuild-ios-simulatorjobs with artifact upload — these are intentional additions (PR binary builds are needed for an upcoming change)Release workflow (
workflow.yml):make test+make release-*Dependency graph
Key design decisions
.stamps/tracks steps that produce many scattered filescheck-deps,check-android-deps,check-ios-depsverify tools are installed once per clean checkoutFLUTTER_BUILD_ARGS: CI passes--dart-defineflags for secrets without hardcoding them in the Makefile.DELETE_ON_ERROR: Cleans up partial outputs if a recipe failsOpen question — is Make the right tool?
build.sh)Test plan
makeruns analyze + testmake allbuilds debug APK + iOS simulatormake generate-assetsis a no-op when stamps are freshmake cleanremoves build outputs, stamps, and generated assetsmake helpprints all targetsmaketargets🤖 Generated with Claude Code