Fix install path, make release safe, and implement real launch-check - #1
Merged
Merged
Conversation
Bug fixes:
- install.sh: strip the leading "v" from the archive name to match
GoReleaser's {{ .Version }}; the curl|sh install previously 404'd.
- ci github: the generated workflow now runs `shipkit install`, so the
readiness gate can pass and the release job is no longer always skipped.
- agent: route through config.FileName instead of a hardcoded ".shipkit.yaml".
Safety + features:
- release: add --dry-run to print the provider commands without executing
them; command mapping refactored into a testable table.
- doctor: add --json structured output.
- launch-check: real readiness evaluation (tools installed, config present
and readable, store identifiers set and not the com.company.* placeholder),
with text and --json output and a non-zero exit when not ready.
Quality:
- CI now enforces gofmt and `go vet`.
- Tests for release dry-run, config round-trip, launch-check, and workflow
generation. All pass under -race.Uh oh!
There was an error while loading. Please reload this page.
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 freeto 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
Reviewed the repo against its own concept ("one coherent, deterministic, auditable release surface"). The code built and tested clean, so this focuses on real defects plus production-readiness gaps for a tool that publishes to app stores.
Bug fixes
install.shwas broken — GoReleaser's{{ .Version }}strips the leadingv(shipkit_0.1.0_…), but the script built the filename from the raw tagv0.1.0. The documentedcurl … | shinstall would 404 on the first release. Fixed by strippingvfor the archive name while keeping it in the download path.readinessjob ranshipkit doctor, which exits non-zero whengpc/rc/ascare missing, and nothing installed them, so the gatedreleasejob was always skipped. Added ashipkit installstep to both jobs.agent.godrift — hardcoded.shipkit.yamlnow routes throughconfig.FileName.Safety + features
release --dry-run— prints the exact provider commands instead of executing them (no more unguarded push to production stores). Command mapping refactored into a testable table.doctor --json— structured output, consistent withagent --json.launch-check— was justdoctor+ file-exists. Now evaluates tools installed, config present/readable, and store identifiers set and not the generatedcom.company.*placeholder. Text and--json, non-zero exit when not ready. Store/network checks remain honestly in the roadmap.Quality
gofmtandgo vet.Loadround-trip, launch-check (ready / placeholder / missing tools), workflow generation.Verification
gofmtclean ·go vetclean ·go test -race ./...all pass · smoke-tested the compiled binary on the green path, the placeholder-caught path, and JSON output.