Skip to content

feat(ci): migrate to self-hosted Mac Mini runner with Nix#11

Merged
jasoet merged 4 commits intomainfrom
feat/self-hosted-ci
Mar 30, 2026
Merged

feat(ci): migrate to self-hosted Mac Mini runner with Nix#11
jasoet merged 4 commits intomainfrom
feat/self-hosted-ci

Conversation

@jasoet
Copy link
Copy Markdown
Owner

@jasoet jasoet commented Mar 30, 2026

Summary

  • Replace ubuntu-latest with [self-hosted, local, macOS, ARM64] Mac Mini runner
  • Split semantic.yml into ci.yml (lint, test, compatibility) and release.yml (semantic-release)
  • Remove all actions/setup-* steps — Nix flake.nix provides all tools
  • Add pkgs.openssl and pkgs.bun to flake.nix for CI reproducibility
  • Use bun/bunx instead of npm/npx for semantic-release (matching pkg project pattern)
  • Separate bao compatibility tests with bao_compatibility build tag (requires Podman, local-only)
  • Fix goconst lint: extract key type string literals to constants
  • Add actor filter for PR safety (github.actor == 'jasoet')

Build tags

Tag Scope Runner
compatibility OpenSSL interop tests CI
bao_compatibility OpenBao container tests (Podman) Local only

Test plan

  • CI workflow triggers on PR and runs on self-hosted runner
  • Lint & Test job passes
  • Compatibility Tests job passes (OpenSSL only, bao excluded via build tag)
  • Runner online in repo Settings > Actions > Runners

🤖 Generated with Claude Code

jasoet and others added 4 commits March 30, 2026 09:49
Replace ubuntu-latest with self-hosted ARM64 runner using Nix for
reproducible tooling. Split monolithic semantic.yml into ci.yml
(lint/test/compatibility) and release.yml (semantic-release via bun).
Remove actions/setup-* steps — Nix provides all tools.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add keyTypeRSA, keyTypeEC, keyTypeED25519 constants in bao/pki package
to satisfy goconst linter for repeated string literals.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ility

Add pkgs.openssl to flake.nix for reproducible OpenSSL in CI.
Exclude compatibility/bao from CI compatibility tests since they
require Podman containers (not available in CI). Remove
continue-on-error since OpenSSL-only tests should always pass.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… build tag

Change bao compatibility tests from 'compatibility' to
'bao_compatibility' build tag so CI can run all compatibility tests
via ./compatibility/... -tags=compatibility without triggering bao
tests that require Podman. Bao tests are run separately via
task test:compatibility:bao with -tags=bao_compatibility.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@jasoet jasoet merged commit e7f872b into main Mar 30, 2026
2 checks passed
@jasoet jasoet deleted the feat/self-hosted-ci branch March 30, 2026 03:08
github-actions bot pushed a commit that referenced this pull request Mar 30, 2026
## [1.24.0](v1.23.0...v1.24.0) (2026-03-30)

### ✨ Features

* add Nix flake for reproducible dev environment and fix all lint issues ([48d8247](48d8247))
* **ci:** add bao compatibility tests with Podman ([#12](#12)) ([2b04a74](2b04a74))
* **ci:** migrate to self-hosted Mac Mini runner with Nix ([#11](#11)) ([e7f872b](e7f872b))

### 🐛 Bug Fixes

* **ci:** resolve podman socket dynamically ([#13](#13)) ([f0435de](f0435de))
* **ci:** use local bun install for semantic-release plugins ([16c756b](16c756b))
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