Skip to main content

Artifacts

Artifact types and the generated artifacts.json reference

Anodizer tracks every file produced during a release as an artifact. At the end of the pipeline, all artifacts are written to artifacts.json in the dist directory.

Artifact types

TypeDescription
binaryRaw build output from cargo build
uploadable_binaryBinary marked for upload (checksummed, signed, released)
universal_binarymacOS universal binary (lipo merge of x86_64 + aarch64)
libraryShared/static library output
headerC header file from cbindgen
c_archiveC-compatible static archive
c_sharedC-compatible shared library
wasmWebAssembly module
py_wheelPython wheel package
py_sdistPython source distribution
archiveCompressed archive (tar.gz, zip, etc.)
source_archiveSource tarball
makeselfSelf-extracting archive
linux_packageLinux package (deb, rpm, apk, archlinux)
snapSnap package
publishable_snapcraftSnap package ready for Snapcraft upload
flatpakFlatpak bundle
source_rpmSource RPM (.src.rpm)
disk_imagemacOS DMG disk image
installerWindows installer (NSIS, MSI)
macos_packagemacOS .pkg installer
docker_imageDocker image (legacy single-platform)
docker_image_v2Docker image (Buildx multi-platform)
publishable_docker_imageDocker image ready for registry push
docker_manifestDocker multi-arch manifest list
docker_digestDocker image digest reference
checksumChecksum file (SHA-256, etc.)
signatureCryptographic signature
certificateSigning certificate
sbomSoftware Bill of Materials
metadataThe generated metadata.json file
uploadable_fileTemplate-rendered file for upload
brew_formulaHomebrew formula
brew_caskHomebrew cask
nixpkgNix package expression
scoop_manifestScoop manifest
publishable_chocolateyChocolatey package ready for push
winget_installerWinGet installer manifest
winget_default_localeWinGet default locale manifest
winget_versionWinGet version manifest
pkg_buildAUR PKGBUILD
src_infoAUR .SRCINFO
source_pkg_buildAUR source package PKGBUILD
source_src_infoAUR source package .SRCINFO
krew_plugin_manifestKrew plugin manifest

artifacts.json format

Each entry in artifacts.json contains:

{
  "kind": "archive",
  "path": "dist/myapp-1.0.0-linux-amd64.tar.gz",
  "name": "myapp-1.0.0-linux-amd64.tar.gz",
  "target": "x86_64-unknown-linux-gnu",
  "crate_name": "myapp",
  "metadata": {
    "format": "tar.gz"
  },
  "size": 4404019
}
FieldDescription
kindArtifact type (see table above)
pathPath relative to the project root
nameCanonical filename
targetRust target triple (null for non-build artifacts)
crate_nameCrate that produced this artifact
metadataFreeform key-value pairs (format, id, binary, etc.)
sizeFile size in bytes (present only when report_sizes: true)

Uploadable artifacts

Not all artifact types are uploaded to releases. The following types are included in release uploads, checksumming, and signing:

archive, uploadable_binary, source_archive, uploadable_file, makeself, linux_package, publishable_snapcraft, flatpak, source_rpm, sbom, py_wheel, py_sdist, checksum, signature, certificate, disk_image, installer, macos_package

Size reporting

Enable artifact size reporting to see a summary table at the end of the pipeline:

report_sizes: true

This populates the size field in artifacts.json and prints a formatted table showing the size of each build output and uploadable artifact.