Skip to content

Add CI workflow#11

Open
baggepinnen wants to merge 5 commits into
mainfrom
fbc/ci
Open

Add CI workflow#11
baggepinnen wants to merge 5 commits into
mainfrom
fbc/ci

Conversation

@baggepinnen

Copy link
Copy Markdown
Collaborator

Adds .github/workflows/CI.yml mirroring the MultibodyComponents CI: push/PR triggers, JULIA_PKG_SERVER: internal.juliahub.com, self-hosted runner with Julia 1.12, the set-up-private-juliahub-registries action (same JULIAHUB_TOKEN_ENCODED/JULIASIM_REGISTRY_SSH_KEY secrets), julia-buildpkg, and Pkg.test() under xvfb-run.

One deviation from the MultibodyComponents workflow, clearly marked TEMPORARY in the file: a step that installs MultibodyComponents from its main branch before building, because the 3D models require the BodyShape center-of-mass fix (JuliaComputing/MultibodyComponents.jl#150) which is not yet in any registered release — a plain registry resolve gets v0.2.0 (pre-fix) and the planar/3D equivalence tests fail. Remove that step and bump the MultibodyComponents compat bound once a fixed release is registered.

Caveat on that step: it uses the SSH URL git@github.com:JuliaComputing/MultibodyComponents.jl.git with JULIA_PKG_USE_CLI_GIT, assuming the SSH identity configured on the runner by the registries action can read the (private) MultibodyComponents repo. If that key is a deploy key scoped to the registry only, the step needs a different credential — or, better, just cut a MultibodyComponents release and drop the step.

The workflow cannot be exercised before it lands on a branch in this repo, so this PR's first CI run is itself the test.

🤖 Generated with Claude Code

baggepinnen and others added 5 commits July 16, 2026 06:27
Mirrors the MultibodyComponents CI: self-hosted runner, private JuliaHub
registries, and the test suite run under a virtual display. Includes a
temporary step that takes MultibodyComponents from its main branch, since
the models require the BodyShape center-of-mass fix
(JuliaComputing/MultibodyComponents.jl#150) which is not yet in any
registered release; remove the step and bump the compat bound once a fixed
release is registered.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
JuliaComputing/set-up-private-juliahub-registries lives in a private
repository, and private actions cannot be resolved from workflows in this
public repository (the run failed at job setup with "Unable to resolve
action"). Use the public actions it delegates to directly:
webfactory/ssh-agent for the Git SSH identity and
PumasAI/add-private-registry for the JuliaHubRegistry, JuliaSimRegistry
and DyadRegistry registries, with the same two secrets.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
MultibodyComponents v0.2.1 containing the BodyShape center-of-mass fix
(JuliaComputing/MultibodyComponents.jl#150) is now registered, so the
temporary CI step installing it from the main branch is removed and the
compat bound is raised to require the fixed release. The SSH-agent step
now only runs when the secret is configured, since all dependencies are
registered and only JULIAHUB_TOKEN_ENCODED is strictly needed.

Full test suite passes locally against the registered v0.2.1.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The secrets context is not available in step-level if conditions, which
made the workflow file invalid (runs failed instantly with no jobs). Test
a job-level env flag instead, which is allowed to reference secrets.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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