Conversation
The apt-based CI couldn't satisfy the build: (hexol k8s)/cmdb need (json) from guile-json and (hexol ansible) needs (yaml) from guile-libyaml, which isn't packaged for Ubuntu. hexol is a Guix project anyway, so CI now installs Guix and runs the suite inside `guix shell -m manifest.scm`, making the manifest the single source of truth. - manifest.scm: add guile-json + guile-libyaml (the real deps). - ci.yml: install Guix, run make build/test/test-examples in the guix shell. - README: document the Guile-library dependencies and the `guix shell -m manifest.scm` install path. Verified locally: `guix shell -m manifest.scm -- make build test test-examples` is fully green.
guix-install.sh blocks on a yes/no prompt that piped input can't satisfy. Switch to the manual binary-tarball install from the Guix manual: extract, create build users, start the daemon, authorize the official substitute key, then run the suite in guix shell — all one step so the backgrounded daemon survives.
examples/terraform.scm reads ~/.ssh/id_*.pub at render time; the runner has none, so generate an ephemeral key (used only as rendered data, never to connect).
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.
What
Adds GitHub Actions CI and fixes the dependency provisioning so it can actually build.
.github/workflows/ci.yml) — on every push tomainand every PR: install Guix, then runmake build test test-examplesinsideguix shell -m manifest.scm.manifest.scm— now declares the real dependencies:guile,guile-json(the(json)module),guile-libyaml(the(yaml)module),jq. It's the single source of truth; CI and dev provision from it identically.test/examples.sh+make test-examples— render each standalone example through its own renderer and assert it exits 0 (smoke, not golden).guix shell -m manifest.scminstall path; FAQ no longer says "no CI yet".Why Guix and not apt
The first apt-based attempt went red twice:
(hexol k8s)/cmdb import(json)(guile-json) and(hexol ansible)imports(yaml)(guile-libyaml). guile-libyaml is FFI-based (nyacc + guile-bytestructures + libyaml) and isn't packaged for Ubuntu, so building it from apt is a fragile multi-package chain. hexol is already a Guix project (.envrcrunsuse_guix), so provisioning CI frommanifest.scmis reproducible and matches the dev environment.Verification
Locally,
guix shell -m manifest.scm -- make build test test-examplesis fully green (kernel/surface/construct/k8s/cmdb tests + all six example renders).Note:
mainis currently red — the earlier apt-based CI commits landed there before we switched to PRs. Merging this fixes it.🤖 Generated with Claude Code