ci: add lint + syntax + install-smoke workflow#5
Merged
Conversation
5 tasks
ashbrener
added a commit
that referenced
this pull request
Apr 28, 2026
PR #5's install-smoke job (Linux runner) caught two `mktemp -t name` invocations that fail on GNU mktemp (`too few X's in template`). Linux/WSL contributors would have hit this immediately. Both fixed to `mktemp -t name.XXXXXX` — portable across BSD (macOS) and GNU. Also clears 3 pre-existing shellcheck warnings PR #5's lint job surfaced in scripts/install.sh: - SC2034: unused END_MARKER - SC2126: grep|wc -l → grep -c - SC2129: grouped redirects with { ... } >> file No version bump (still wingman-hook-version: 2 — bugfixes within v2).
Wingman ships bash + inline python; the install.sh has versioned-block logic and three install paths (fresh / upgrade / --force). Without CI those paths drift silently — the next PR that breaks `npx skills add ashbrener/wingman` ships unnoticed. Three jobs: - lint: shellcheck on install.sh + pre-push.sample - syntax: bash -n + py_compile on the embedded heredoc - install-smoke: exercise fresh / upgrade / --force scenarios against an ephemeral git repo Triggers: pull_request + workflow_dispatch (skip push for skill packs).
585829d to
b6e33aa
Compare
2 tasks
ashbrener
added a commit
that referenced
this pull request
Apr 28, 2026
Catch up the README with PR #4 (versioned-block installer + --force reinstall flag) and PR #5 (CI workflow). Documents: - The hook-version marker pattern (# wingman-hook-version: N) - --force / --reinstall flag for unconditional block replacement - --help flag for installer usage - .github/workflows/wingman-ci.yml runs lint + syntax + install-smoke on every PR (validates macOS + Linux compatibility) No code changes; pure docs catch-up.
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
.github/workflows/wingman-ci.ymlwith three parallel jobs:lint(shellcheck),syntax(bash -n + py_compile on the embedded heredoc), andinstall-smoke(fresh / v1→v2 upgrade / --force scenarios against an ephemeral git repo).pull_requestandworkflow_dispatchonly — push to main is wasteful for a skill pack.4b38606to source the v1 sample for the upgrade scenario, so the fixture stays stable as main advances.CI status on first run
lint— greensyntax— greeninstall-smoke— RED, and it found a real bug:mktemp -t wingman-hookandmktemp -t wingman-reviewwork on macOS BSDmktempbut fail on GNUmktempwithtoo few X's in template. PR fix(pre-push): env-overflow on big pushes #4 introduced the install.sh call; the pre-push.sample call predates it. Suggested fix in a follow-up PR: change tomktemp -t wingman-hook.XXXXXX/mktemp -t wingman-review.XXXXXX— portable across BSD and GNU. Locations:scripts/install.sh:94(PR fix(pre-push): env-overflow on big pushes #4 territory)assets/pre-push.sample:38(predates PR fix(pre-push): env-overflow on big pushes #4)The CI workflow itself is correct — leaving it red here is intentional so the bug is visible. Once the
mktempfix lands, this CI goes green.Pre-existing shellcheck signal (not blocking lint job)
The lint job runs at
--severity=errorand is green. At--severity=warning,scripts/install.shsurfaces 3 stylistic items, all PR #4 territory:END_MARKER appears unused(line 60)grep | wc -l→grep -c(line 149){ ...; } >>(line 171)Not addressed here per scope.
Test plan
mktempportability bug — fix in follow-up)