Skip to main content

What anodizer builds

Artifacts the `anodizer release` pipeline produces: binaries, archives, packages, installers, containers, and signing material.

What anodizer builds

Output formats and the builds[] / archives[] / dockers[] / signs[] keys that drive them. Native binaries for 6 targets ship on every release (linux amd64/arm64, darwin amd64/arm64, windows amd64/arm64), built with cargo + cargo-zigbuild + cross.

Build

KeyStatusNotes
builds[].goos / builds[].goarch✅ Verifiedv0.1.1 assets cover 6 targets (*-linux-amd64.tar.gz to *-windows-arm64.zip)
universal_binaries[]✅ Verifiedcfgd v0.3.5 ships cfgd-0.3.5-darwin-all.tar.gz via lipo
upx[]✅ Verifiedanodizer-0.1.1-linux-amd64.tar.gz (UPX-packed)
builds[].overrides✅ Verifiedcfgd .anodizer.yaml (format_overrides for windows zip)
builds[].hooks.pre / post✅ Verifiedanodizer .anodizer.yaml (archive hooks.before / hooks.after)
builds[].mod_timestamp✅ Verifiedanodizer .anodizer.yaml (metadata.mod_timestamp: "{{ CommitTimestamp }}")
builds[].builder: prebuilt✅ Verifiedcrates/stage-build/src/tests.rs
builds[].buildmode (no-compile)✅ Verifiedcrates/stage-build/src/run.rs
report_sizes✅ Verifiedanodizer .anodizer.yaml (report_sizes: true)

Archives and checksums

FormatStatusNotes
tar.gz✅ Verifiedanodizer-0.1.1-linux-amd64.tar.gz
zip✅ Verifiedanodizer-0.1.1-windows-amd64.zip
tar.xz, tar.zst, tgz✅ Verifiedanodizer .anodizer.yaml (second archives[] entry with formats: [tar.xz, tar.zst] + tgz override). TODO: link a live asset once v0.2.0 ships
source.format✅ Verifiedanodizer-0.1.1-source.tar.gz
makeselfs[]✅ Verifiedanodizer-0.1.1-linux-amd64-installer.run (4 platforms)
KeyStatusNotes
checksum.algorithm✅ Verifiedsha256 default. anodizer-0.1.1-checksums.txt. Full list: sha1/224/256/384/512, sha3-*, blake2s/2b, blake3, crc32, md5
checksum.split✅ Verifiedcfgd .anodizer.yaml (checksum.split: true per crate)

Linux packages

FormatStatusNotes
.deb✅ Verifiedanodizer_0.1.1_linux_amd64.deb (amd64 + arm64)
.rpm✅ Verifiedanodizer_0.1.1_linux_amd64.rpm (amd64 + arm64)
.apk✅ Verifiedanodizer_0.1.1_linux_amd64.apk
.src.rpm✅ Verifiedanodizer-0.1.1-1.src.rpm
.snap✅ Verifiedsnapcraft.io/anodizer, latest/stable channel
archlinux, ipk, termux.deb🤝 Help wantednFPM dispatch covered; not shipped live
KeyStatusNotes
nfpms[].scripts✅ Verifiedcrates/core/src/config/nfpm.rs (preinstall / postinstall / preremove / postremove fields)
nfpms[].contents✅ Verifiedcfgd .anodizer.yaml (contents: ships LICENSE + README.md to /usr/share/doc/cfgd/)
NFPM_PASSPHRASE env chain✅ Verifiedcrates/stage-nfpm/src/builders.rs (three-level lookup chain)

macOS and Windows installers

Code-signing material and a real macOS or Windows runner are required before these can ship live. Implementation is complete and unit-tested.

FormatStatusNotes
.dmg🤝 Help wantedNeeds dmgs[] configured
.pkg🤝 Help wantedNeeds pkgs[] configured
.app bundle🤝 Help wantedNeeds app_bundles[] configured
.msi🤝 Help wantedNeeds wixl/candle/light on the runner
.exe (NSIS)🤝 Help wantedNeeds makensis on the runner
KeyStatusNotes
notarize.macos🤝 Help wantedCross-platform (rcodesign). Implementation requires sign.certificate (P12 file), sign.password, and notarize.{issuer_id, key, key_id}, i.e. an Apple Developer Program membership. Not dogfoodable on Linux runners without a paid Apple account
notarize.macos_native🤝 Help wantedNeeds Apple Developer cert on a macOS runner

Container images

KeyStatusNotes
dockers[]✅ Verifiedghcr.io/tj-smith47/cfgd (cfgd, cfgd-operator, cfgd-csi)
docker_manifests[]✅ Verifiedghcr.io/tj-smith47/cfgd:v0.3.5 (multi-arch linux/amd64+arm64; same for cfgd-operator, cfgd-csi)
docker_v2✅ Verifiedcfgd .anodizer.yaml (docker_v2: blocks for cfgd-agent, cfgd-operator, cfgd-csi)
dockers[].build_args / labels / annotations✅ Verifiedcfgd .anodizer.yaml (build_args.VERSION + org.opencontainers.image.* annotations)
docker_v2.sbom: true✅ Verifiedcfgd .anodizer.yaml (sbom: true on all three docker_v2 images)
docker_digest.name_template✅ Verifiedcfgd .anodizer.yaml (docker_digest.name_template: "cfgd_{{ .Tag }}.digest")
dockers[].use: buildx✅ Verifiedcrates/stage-docker/src/detect.rs (buildx is the default backend)
docker_manifests[].use: docker / podman🤝 Help wantedBackend selector for docker manifest create / push. cfgd configures docker_manifests[] but the entries are bypassed because docker_v2 already pushes multi-arch indexes (docker: skipping manifest ... already pushed as multi-arch by docker_v2). No live release exercises the non-buildx backend
docker_hub.description🤝 Help wantedWe use ghcr; needs a Docker Hub-anchored release

Signing

KeyStatusNotes
signs[] (cosign)✅ Verifiedcfgd v0.3.5 cosign bundle. Cosign keyless for binaries and checksums
signs[] (gpg)✅ Verifiedanodizer-0.1.1-checksums.txt.sig
signs[].artifacts✅ Verifiedcfgd .anodizer.yaml (signs: declares artifacts: checksum and artifacts: source slots)
docker_signs[]✅ Verifiedcfgd .anodizer.yaml (docker_signs: with cosign over artifacts: manifests)
binary_signs[]✅ Verifiedanodizer .anodizer.yaml (binary_signs: block with cosign sign-blob)
sboms[]✅ VerifiedCycloneDX via syft. anodizer-0.1.1.cdx.json
${artifact} / ${document} substitution✅ Verifiedcrates/stage-sbom/src/lib.rs ($artifact, $artifactID, $document, $document<N> substitution)