Commit graph

26 commits

Author SHA1 Message Date
Leon Mika fde480d506 Document inputs, outputs, and usage
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 10:49:05 +10:00
Leon Mika 3792d00d6e Finalize action.yml with full inputs and outputs
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 10:43:44 +10:00
Leon Mika 3b2fa2d6ae Remove stray go.sum from sample-app fixture
Same artefact go get/test sometimes leaves in fixture directories.
modfile.Parse is text-only and the test path never resolves modules;
the file is unnecessary and matches the cleanup we did after Task 5.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 10:37:50 +10:00
Leon Mika 22aa4d6069 Add end-to-end integration test with fake external binaries
Exercises the full run() pipeline using fake shell scripts on PATH that
record their argv to a temp RECORD_DIR. Verifies all external commands
were invoked, outputs contain the expected version/app/artifact values,
ditto was called twice (pre- and post-staple), and security delete-keychain
ran during cleanup.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 10:37:12 +10:00
Leon Mika 445c99e6c4 Mask base64 cert and document add-mask stdout requirement
DeveloperIDCertBase64 is the .p12 contents and equally sensitive as
the password — register it with the log scrubber so a future code
path that accidentally wraps cfg in a debug log can't leak it. Also
documents why maskSecrets writes to stdout rather than stderr.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 10:34:05 +10:00
Leon Mika 97fb47d023 Wire orchestrator end-to-end
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 10:29:08 +10:00
Leon Mika 9c4e4675c7 Add Forgejo Actions output + masking helpers
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 10:24:36 +10:00
Leon Mika fc259f2a28 Add S3 upload with key templating and custom endpoint
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 10:22:12 +10:00
Leon Mika 708cc0c864 Add notarytool wrapper supporting api-key and apple-id
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 10:18:46 +10:00
Leon Mika 83904d8f8c Add codesign sign + verify
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 10:16:30 +10:00
Leon Mika eefce13a7c Add temporary keychain lifecycle for codesigning
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 10:13:37 +10:00
Leon Mika 0d12173ff9 Add cleanup stack
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 10:11:29 +10:00
Leon Mika 1acf07af16 Add ditto archive helper
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 10:09:40 +10:00
Leon Mika 0c48594842 Add wails build invocation
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 10:07:25 +10:00
Leon Mika 6b8cb07973 Add Wails CLI install/detection helper
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 10:05:09 +10:00
Leon Mika 28186131a5 Stop tracking compiled wails-release binary
The previous tidy commit accidentally staged a stray go-built binary
at the repo root via git add -A. Untrack it and gitignore the path
so future builds don't re-stage it.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 10:04:04 +10:00
Leon Mika 187e19230a Tidy go.mod and remove stray fixture go.sum
go mod tidy promotes golang.org/x/mod from indirect to a direct
require now that internal/wails imports it. Also removes the
testdata/sample/go.sum that go get accidentally generated inside
the fixture.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 10:03:33 +10:00
Leon Mika 338d1fd5b7 Add Wails project metadata reader
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 10:00:21 +10:00
Leon Mika 5c72dd2a97 Add config loader and validator
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 09:56:02 +10:00
Leon Mika 2115507d52 Add version resolver (tag → strip-v / fall back to short SHA)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 09:50:04 +10:00
Leon Mika f34061954f Use bytes.NewReader and add Dir/Env/Stdin coverage
Replaces the handwritten bytesBuf/eof workaround with the canonical
bytes.NewReader + io.EOF, and adds behavioural tests for the Dir, Env,
and Stdin branches of Real.Run that the original plan didn't cover.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 09:49:05 +10:00
Leon Mika 2350046601 Add Runner abstraction with Real and Fake implementations
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 09:45:26 +10:00
Leon Mika b86a9dc9eb Bootstrap Go module and action skeleton
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 09:40:04 +10:00
Leon Mika a155c3ab7a Add implementation plan for Wails Release Action
18-task TDD plan covering scaffolding, runner abstraction, version /
config / wails / archive / cleanup / codesign / notarize / upload /
actions packages, the orchestrator, an end-to-end integration test
with fake binaries, and the action.yml + README finalization.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 09:36:52 +10:00
Leon Mika 8b812e72a5 Tighten Wails release design after self-review
- Fold action.yml into a single composite step so the binary's
  resolved path is computed in the same shell that just installed it.
- Specify shell-style splitting for extra-build-flags.
- Spell out auto-detection edge cases for notarization-method.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 09:25:29 +10:00
Leon Mika 39f5bad966 Add design doc for Wails Release Action
Captures the validated brainstorming output: composite Forgejo Action
that go installs and runs a Go binary to build, sign, notarize, and
optionally upload a Wails macOS app to S3-compatible storage.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 09:24:12 +10:00