Files
container-openldap/build
Bertrand GounyandClaude Opus 5.5 5df4f23a40 ci: build each arch natively and publish them together
Build and test each arch on its own runner (ubuntu-latest and
ubuntu-24.04-arm) instead of under QEMU, with osixia/dagger-build OCI
archives: on tags, build jobs export them as artifacts, and the publish
job deploys them as a single multi-arch image per tag.

Integration scenarios now run on every built image, so on arm64 too:
each runner builds its own arch, so the engine platform filter never
skipped anything.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 23:47:50 +02:00
..

CI/CD tool

Built with osixia/dagger-build.

Get Help

go run main.go --help

Run Tests

go mod vendor
go run main.go job test ../Dockerfile

Limit a local run with --arches amd64. Pass the arch of the host: scenarios run on every built image, and other arches would be emulated. The CI builds and tests each arch on its own native runner, then publishes them together from their OCI archives (--oci-export-to, --oci-import-from).

After the shared version check, tests/ runs integration scenarios on each built image:

  • default bootstrap;
  • alternative schemas (nis, virtualMail);
  • all features with 3 replicated nodes: all compatible modules and schemas, TLS required, readonly users, monitor, ppolicy, unique, refint, memberof and multi-provider replication;
  • openldap-ctl backup and restore;
  • upgrade: pre-upgrade backup on a simulated N-1 image, restore on N, downgrade refused;
  • upgrade from previous published releases (previousReleases in tests/upgrade.go).

Scenarios are written in Go and run their LDAP checks with the scripts in tests/testdata/. Replication nodes run with root capabilities in derived test containers, to get their hostname (see tests/testdata/node.sh).