blob: 47a96544e0e5d51b5d5747a49c2737b6157ad4af [file] [log] [blame] [view]
# Artifactory
Artifactory is a host tool which emits a GCS upload manifest of build artifacts
from the local build directory in an organized layout. The artifacts which are
written into the manifest are determined by build API metadata, e.g.
images.json, blobs.json, binaries.json, etc.
The infrastructure invokes artifactory and pipes the upload manifest into its
uploader after each build so that the artifacts may be accessed by downstream
clients.
## Cloud storage layout
Artifacts specific to a build e.g. images are uploaded to a unique namespace
according to a unique `-namespace`. Artifacts which may be shared across builds,
e.g. blobs, debug binaries, etc. are uploaded to a shared namespace. The precise
layout is documented in [cmd/up.go](cmd/up.go).
## Deduplication
Artifacts which live in shared namespaces are not uploaded more than once. Thus
the number of files uploaded, and the runtime of the tool, go down depending on
the amount of deduplication across builds and/or repeat invocations.