You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ivy-user@ant.apache.org by Jack Lund <ja...@m2mconnectionsinc.com> on 2012/03/30 18:07:15 UTC
Problems moving artifacts from one repository to another
Hi,
I'm trying to do something that seems like it should be easy, but I can't seem to find a way to do it with Ivy. Basically, I want to copy an artifact from one repository to another, "promoting" it in the process.
In more detail, we have a build repository and a staging repository. Our continuous integration server (Jenkins) pulls the source from SCM, builds it, and runs all unit tests and code coverage, and then publishes it to the build repository. Once it does that, we want to be able to copy the artifact from the build repo to the staging repo, changing the status from "integration" to "milestone".
This seems like it should be a fairly standard use case, but there doesn't seem to be any good way to do it in Ivy. I've tried doing a retrieve followed by a publish, but in order to do a retrieve, I need to specify the artifact as a dependency (in a different ivy.xml file), and then the publish doesn't seem to work because it thinks it's trying to publish something else. I've tried an install followed by a publish, but publish seems to need a resolve to happen before it can publish.
All of this seems way WAY too complicated. I'm just looking for a way to retrieve a latest.integration revision of an artifact and republish it. Why is this so complicated? Am I missing something essential here?
Very frustrated. Any help would be greatly appreciated.
Thanks.
-Jack Lund
Re: Problems moving artifacts from one repository to another
Posted by Roger <ro...@gmail.com>.
You probably need to take a look at the install command.
R
On 31/03/12 05:07, Jack Lund wrote:
> Hi,
>
> I'm trying to do something that seems like it should be easy, but I can't seem to find a way to do it with Ivy. Basically, I want to copy an artifact from one repository to another, "promoting" it in the process.
>
> In more detail, we have a build repository and a staging repository. Our continuous integration server (Jenkins) pulls the source from SCM, builds it, and runs all unit tests and code coverage, and then publishes it to the build repository. Once it does that, we want to be able to copy the artifact from the build repo to the staging repo, changing the status from "integration" to "milestone".
>
> This seems like it should be a fairly standard use case, but there doesn't seem to be any good way to do it in Ivy. I've tried doing a retrieve followed by a publish, but in order to do a retrieve, I need to specify the artifact as a dependency (in a different ivy.xml file), and then the publish doesn't seem to work because it thinks it's trying to publish something else. I've tried an install followed by a publish, but publish seems to need a resolve to happen before it can publish.
>
> All of this seems way WAY too complicated. I'm just looking for a way to retrieve a latest.integration revision of an artifact and republish it. Why is this so complicated? Am I missing something essential here?
>
> Very frustrated. Any help would be greatly appreciated.
>
> Thanks.
>
> -Jack Lund
Re: Problems moving artifacts from one repository to another
Posted by Tom McGlynn <tm...@ieee.org>.
Hi Jack,
Can you simplify the process and eliminate the problem by doing one of the
following?:
1. Eliminate the build repository and use only the stage repository.
Publish directly to the stage repository.
2. If you really do need two repositories, publish twice at the end of the
build, first to the build repository, then to the stage repository.
Having two copies of a revision of an Ivy module, one with
status=integration and one with status=milestone seems confusing.
We use status as an indication of the level of promotion. A new build
starts with status=integration. Some policy causes the promotion to
milestone, such as QA approval. We don't automatically assign the
milestone status to a new build. Since we have only one repository we
don't need to synchronize a mirror.
On Fri, Mar 30, 2012 at 12:07 PM, Jack Lund <ja...@m2mconnectionsinc.com>wrote:
> Hi,
>
> I'm trying to do something that seems like it should be easy, but I can't
> seem to find a way to do it with Ivy. Basically, I want to copy an artifact
> from one repository to another, "promoting" it in the process.
>
> In more detail, we have a build repository and a staging repository. Our
> continuous integration server (Jenkins) pulls the source from SCM, builds
> it, and runs all unit tests and code coverage, and then publishes it to the
> build repository. Once it does that, we want to be able to copy the
> artifact from the build repo to the staging repo, changing the status from
> "integration" to "milestone".
>
> This seems like it should be a fairly standard use case, but there doesn't
> seem to be any good way to do it in Ivy. I've tried doing a retrieve
> followed by a publish, but in order to do a retrieve, I need to specify the
> artifact as a dependency (in a different ivy.xml file), and then the
> publish doesn't seem to work because it thinks it's trying to publish
> something else. I've tried an install followed by a publish, but publish
> seems to need a resolve to happen before it can publish.
>
> All of this seems way WAY too complicated. I'm just looking for a way to
> retrieve a latest.integration revision of an artifact and republish it. Why
> is this so complicated? Am I missing something essential here?
>
> Very frustrated. Any help would be greatly appreciated.
>
> Thanks.
>
> -Jack Lund