Binary repository
Description
Teams need to store and share releases, often called artifacts or builds, that are packaged up for internal or external consumption. These may be used within a company, or published for external use. Sometimes they're used within a single pipeline: e.g. create a build and then deploy it. Sometimes they're used across multiple pipelines: e.g. create a package and then consume that package in a different project.
We already have a container registry for Docker images, and have CI/CD pipeline binary artifacts, but don't have a first-class to browser or consume those binary artifacts. We should let people publish these artifacts, expanding who has access to see and download them. We should also let people browser published (and non-published) artifacts at a higher level than a project, say at a group level.
Proposal
Here’s an image from Artifactory showing both a cache of external artifacts (jcenter-cache) that are used in your project, but stored in Artifactory for faster and more reliable access, and user-generated artifacts (libs-snapshot-local) that has multiple artifacts defined, multi, multi1, multi2, multi3, which I assume would map to our projects, and then a versioned shapshot, which then contains a bunch of files you can browser. I don’t know why they also throw in an .xml file into that list. I think it’s just for configuration, so I’d ignore it for now.
Links / references
- https://www.jfrog.com/binary-repository/
- Java maven support https://gitlab.com/gitlab-org/gitlab-ce/issues/19095
- Debian apt support https://gitlab.com/gitlab-org/gitlab-ee/issues/275