views:

52

answers:

2

In all of the artifact repository's that I've evaluated I have to see how I can maintain my repository in such a way that I can archive old stuff so I'm not looking at thousands of artifacts in the tree while still being able to have repeatable builds of old software.

Not being able to rename/move/archive old artifacts means that they hang around and the repo gets unruly and hard to maintain.

Granted I'm new at this so maybe someone can point me in the right direction but this seems like a pretty big gap to me.

A: 

You have to do regulary backup's of your RepoManager. This will guarantee to have repeatable builds. To have a maintainable repos you have to think about rules which artifacts will get into the repos. This can only be applied for artifacts which are created by yourself. You have to make separate areas (repos) for that. One for the internal stuff and one for the stuff which is coming via maven-central...may be more.

khmarbaise
+2  A: 

Artifactory has OSS plugins for integrating with all common build servers: Hudson, TeamCity and Bamboo. This integration lets you do just that - trace your build artifacts and relate them to actual CI builds so that the builds are repeatable.

What this means is that for each build you can identify all produced artifacts and used dependencies (with selective scopes) and move/copy them as one unit to another repository in Artifactory (e.g. an archive repository which will retain those artifacts/dependencies for an extended period of time) or even export them as an archive to external media.

As part of tracing Artifactory will also collect and keep other information that is crucial for repeating the build, such as all effective env. vars and system props at the time of build, JDK and build server versions, etc. This information is available via REST and through the UI (some features require Artifactory Pro). You can read more about this here.

Yoav Landman