What is an Artifact in Continuum?
An artifact in Continuum is a software deliverable that contains Changes (commits) and Workitems (stories and defects). Continuum does not store the artifact but does contain a record of the artifact and, versions the artifact record and associates the Changes and Workitems with it. As the artifacts is packaged and deployed or released Continuum will also consider the Changes and Workitems deployed and released.
Examples of artifacts:
- war / jar files (Java)
- exe / msi / nuget package (Microsoft)
- tar / zip files
- SQL scripts
- configuration (Chef / Puppet code, recipes, etc.)
When an artifact is created either through a CI build job, a Continuum Automate task or some other external process the record of that artifact is populated in Continuum using a pipeline command and are tied to the Project in which the pipeline instance is scoped.
For example, if we have a repository and corresponding Continuum project called "webstore", the build of webstore would most likely result in at least one trackable artifact. Let's assume this artifact will be a Java jar file. Since there is only one resulting artifact from the build of webstore, the artifact can be named webstore. If the build produced two artifacts, we could name one webstoreservicea and webstoreserviceb for example.
Regardless, in the our example pipeline lets create an artifact and assign it properties. For the time being we will make some assumptions about the version number, location of the artifact (e.g. Artifactory or Nexus path) and just get it into the pipeline.
Configure Project with Artifact
Return to the Manage Project page and edit the project you have already created. On the Artifacts tab click the Add New button. Name the artifact something meaningful but not specific to a version. For instance you could use the project name itself (see previous section).
Revise the Artifact in the Pipeline
The act of revising an artifact creates a record of a specific built artifact in Continuum and assocates the Changes and Workitems in the pipeline manifest with this artifact revision. This is done by dragging
Flow, Pipeline - Revise Artifact into the Stage immediately after your build step (after Jenkins, Bamboo, TeamCity, TFS, etc.). There are various properties avaiable:
Project: Optional, the name of the project that the artifact is related to. Most cases this will be left blank and will default to the project within the pipeline instance scope. Artifact Name: Required, this is the name of the artifact used on the Manage Projects page. Branch: Optional, the SCM branch name this artifact was build for. Typically the constance __GROUP can be used. Location: Optional, usually the URL or filesystem location of the resulting artifact. Might be the Artifactory, Nexus or NuGet URL. Version: Optional, usually some sort of unique version number, a combination of the software version + build number. However this is different from one place to another. Build Identifier: Optional, usually the Jenkins or TeamCity build number but also could be the Continuum pipeline id. Build URL: Optional, a link to the Jenkins or TeamCity build url. Build Details: Optional, A flexible JSON document of key, value pairs that describe further information about the artifact
As you can see most of these properties are optional. In this tutorial we will skip over using all the properties but the name for now. Add the artifact name from the project.
Other Artifact Considerations
Most of the time the CI build job will generate the artifact, version number, etc. and further automation that Continuum will trigger will need these properties. For instance if Continuum triggers a deployment event and needs to pass the version number or URL (location) to a Chef node, there are methods to extract this information from the build server or have the build server report this information back to Continuum. However for purposes of moving through this tutorial we will defer those topics.
Run the Pipeline
Make another commit and push. When the Pipeline Instance completes, check the Manifest of the pipeline instance. You should see Changes, Workitems and Artifacts. Expand the Artifacts box and click on the Artifact revision. Notice how the data is tied together. You can click on the Workitems to see how they are tied to artifacts and changes and pipeline instance. Similarly you can check out the relationships from the Changes to the other data elements.
After you have completed the instructions, continue with the next step Packages