tree: 33fb090a180683ea860c257fd92b515b3a8145df [path history] [tgz]
  1. BUILD.gn
  2. OWNERS
  3. README.md
  4. binaries.go
  5. binaries_test.go
  6. blobs.go
  7. blobs_test.go
  8. checkout_artifacts.go
  9. cmd/
  10. host_tests.go
  11. host_tests_test.go
  12. images.go
  13. images_test.go
  14. modules.go
  15. modules_test.go
  16. package_manifest.go
  17. package_manifest_test.go
  18. sdk_archives.go
  19. sdk_archives_test.go
  20. sign.go
  21. sign_test.go
  22. tools.go
  23. tools_test.go
  24. upload.go
tools/artifactory/README.md

Artifactory

Artifactory is a host tool which uploads build artifacts from the local build directory to a cloud storage bucket in an organized layout. The artifacts which are uploaded are determined by build API metadata, e.g. images.json, blobs.json, binaries.json, etc.

The infrastructure invokes the tool 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 given -uuid. 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.

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.

Signing

The tool can be instructed to sign artifacts prior to upload by providing a ED25519 private key. See the -pkey flag in cmd/up.go and the implementation in sign.go.