For Nexus 2, we’ve implemented some complex release promotion, based on building more or less independant components that are tested and released in combination in an integration pipeline. On release promotion, the related artifacts are copied from CD Nexus repository to a particular Releases repository. This is done by a Spring Boot Java service (running directly on the Nexus server) that just copies the files, and is exposed to Jenkins via an own REST API.
Now we’re planning migration to Nexus 3 and have to find a way to implement the release promotion. I currently believe that existing features in Nexus Pro (Tagging, Staging) do not fully satisfy our needs, so we probably need to implement release copying ourselves.
As far as I understood, the artifact files (assets) are still plain files inside of the Blob stores, organized in folders, but the meta data is stored in databases. Would it be possible to just copy the artifact files to another Nexus repo and somehow rebuild the metadata based on blob storage (using some of the repair tasks)? Or is such approach strongly discouraged?
Alternatively, which approach would be best fit for our needs:
- using Nexus REST API,
- upload and run a custom script,
- or rather develop a custom plugin?
Thanks for any hints…!