Skip to content

ci: standard pipeline (bun test + security scanners + dependabot)#8

Merged
josephismikhail merged 2 commits into
mainfrom
ci/standard-pipeline
Jun 9, 2026
Merged

ci: standard pipeline (bun test + security scanners + dependabot)#8
josephismikhail merged 2 commits into
mainfrom
ci/standard-pipeline

Conversation

@josephismikhail

Copy link
Copy Markdown
Contributor

Stands up the shared CI baseline for this repo (it had no workflows), mirroring the Ix repo's patterns.

What's added

  • .github/workflows/ci.yml — installs the Bun toolchain via oven-sh/setup-bun (SHA-pinned), runs bun install then bun test, fronted by a stable CI Passed aggregator job so branch protection can require one stable context. concurrency cancels superseded runs; top-level permissions: contents: read; persist-credentials: false on checkout.
    • No build/typecheck step: the repo has no build script and no tsconfig.json, and Bun executes the TypeScript tests directly. bun test runs the offline contract/fallback suite (the @live tests are gated behind IX_LIVE_TESTS=1).
  • .github/workflows/secret-scan.yml — gitleaks via the free MIT binary (the GitHub Action requires a paid org license), full-history scan.
  • .github/workflows/actions-lint.yml + .github/zizmor.yml — zizmor workflow audit (medium+), runs on workflow changes.
  • .github/dependabot.ymlgithub-actions ecosystem, weekly, grouped.

Decisions

  • Dependabot / Bun lockfile: github-actions ecosystem only. This is a Bun project; the only lockfile Bun emits is bun.lockb, which Dependabot's npm updater cannot parse, and no lockfile is committed. An npm entry would open PRs bumping package.json ranges without regenerating bun.lockb, leaving the tree drifted. Documented inline; revisit if Dependabot adds native Bun support.
  • Scope: core quality gate + Dependabot + security scanners only. No matrix / e2e / Scorecard / CodeQL / SBOM, per request.

All actions are SHA-pinned with version comments; least-privilege permissions throughout.

🤖 Generated with Claude Code

josephismikhail and others added 2 commits June 8, 2026 16:58
Add the shared CI baseline, mirroring the Ix repo's workflows:

- ci.yml: Bun toolchain (oven-sh/setup-bun) + `bun install` + `bun test`,
  fronted by a stable `CI Passed` aggregator. No build/typecheck step (the
  repo has no build script or tsconfig; Bun runs the TS tests directly).
- secret-scan.yml: gitleaks via the free MIT binary (the Action needs a paid
  org license), full-history scan.
- actions-lint.yml + zizmor.yml: zizmor workflow audit on workflow changes.
- dependabot.yml: github-actions ecosystem only. npm is omitted because this
  is a Bun project (bun.lockb is unparseable by Dependabot's npm updater and
  no lockfile is committed).

All actions SHA-pinned; least-privilege permissions; persist-credentials:false;
concurrency cancellation on every workflow.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The v1.4.2 migration (f9ea81e) changed plugins/ix-plugin.ts to export a
named `server` Plugin function that returns a registration object (a `tool`
map keyed by tool name + hook handlers like `tool.execute.after`). The
PluginHookContract test block was not updated in that commit and still
asserted the old default-export `{ name, tools[], hooks[] }` shape, so it
failed: `import(...).default` is undefined and there is no 5-hook array.

Update the three assertions to the actual contract: assert the `server`
named export is a function, invoke it (the ix-unavailable startup probe is
swallowed by its try/catch), and check the returned `tool` map has the 17
expected tools and a `tool.execute.after` hook handler.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@josephismikhail josephismikhail merged commit 4750739 into main Jun 9, 2026
6 checks passed
@josephismikhail josephismikhail deleted the ci/standard-pipeline branch June 9, 2026 00:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant