Select release artifacts
Asked by Erik:

For a couple of our projects we use shared artifacts to distribute the source code through our stages and tasks after wich a deployable artifact gets created.

When selecting the build ready for release, both the source and the deployment artifact are available to deploy.

As this source code is already stored and tagged in the SCM and within the deployable artifact, we are not really interested in storing this another time.

Is there a way to tag or select an artifact that will be taken into the deployment project, while other artifacts will be disregarded?

Kind regards, Erik


Answers:
author: Ron Chan
body: I take it at this point you know what to do, just that you're trying to determine how to do it.


author: Andr? Schade
body: Yes, we did thart already. That is not the issue. We just want to exclude the unncessary artefacts from the release...


author: Ron Chan
body: Well if you have your artifact tagged with the precise files you need, then you would absolutely be able to deploy only that which you need.

Say you tagged on build side a "bin" folder which contains only the file you want. From deployment project, under **Artifact download** , instead of selecting **All artifacts** , select "bin" under **Individual Artifacts**.


author: Ron Chan
body: When you setup the deployment project, you're able to select which tagged artifacts you want included in your deployments.


author: Andr? Schade
body: yes you're right -- but I'm not able to exclude several published artefacts form the release ;-)


author: Andr? Schade
body: But I'll still have the source code in my release due to the fact that it is an already published artefact...

The issue is -- from my point of view -- that I can only say create release and every published artefact -- regardless of the stage -- will be in that release.

BTW: we already set up the second way. We needed to to have a clean release of course...  
Normal way for Java projects and set it up for JS only, Andriod and PHP projects as well.

So the build script part is well configured I guess.


author: Ron Chan
body: You'll need to break up your release artifacts (from the last stage) into parts (e.g. "xml files"). Where one of those parts will be used for deployment artifacts.

Another option, form the build side, generate your artifacts (that you need for deployment) into a "deploy" directory within the rest of your source files. Then it would be simple to only tag that directory as an artifact for deployment.


author: Andr? Schade
body: Yes, that is already clear. The issues is that we have a stage where just grab the source from the SCM and pusblish them as an artefact to have it for the other stages (there are a lot with multiple jobs) to be sure that they all work with the same base. Within the last stage we create our 'release' artefacts and publish them for the deployment. But when we create an artefact the source code is stored as well because it was/is a publoished artefact in the build plan but theres absolutely no need for the source in hte release but we need is a published artefact in the build plan. I hope that clarifies our/the situation a bit.

Cheers,

Andr?


author: Ron Chan
body: When tagging artifacts (on the build side), you can be as granular as you'd like. Then on deployment side, you can pick and choose which artifacts you need.

For Example:

**Project ABC build artifacts**

* *xml files (\*.xml)*
* *lib files (\*.lib)*
* *text files (\*.txt)*

**Project ABC deployment artifacts**

* *lib files*

<br />

<br />


author: Andr? Schade
body: Hi,

due to the fact that this is a serious issue in our company: Is there any news on that here?

KR,

Andr?