tree: 9ce2ab374aeb2d5719571322ce7bdb4c643f1e52 [path history] [tgz]
  1. cmd/
  2. assembly_input_archives.go
  3. assembly_input_archives_test.go
  4. assembly_manifests.go
  5. assembly_manifests_test.go
  6. binaries.go
  7. binaries_test.go
  8. blobs.go
  9. blobs_test.go
  10. BUILD.gn
  11. images.go
  12. images_test.go
  13. licenses.go
  14. licenses_test.go
  15. modules.go
  16. modules_test.go
  17. OWNERS
  18. product_bundle.go
  19. product_bundle2.go
  20. product_bundle2_test.go
  21. product_bundle_test.go
  22. product_size_checker_output.go
  23. product_size_checker_output_test.go
  24. README.md
  25. sdk_archives.go
  26. sdk_archives_test.go
  27. tools.go
  28. tools_test.go
  29. upload.go
tools/artifactory/README.md

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.

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.