Warm tip: This article is reproduced from stackoverflow.com, please click
azure-devops jenkins-pipeline python devops continuum

Which Continuum APIs can be used to track artifacts, packages and releases?

发布于 2020-03-27 10:26:59

The continuum product has a number of built in UI plugins to allow a team to track a set of stories and defects from commit to production, is there a way to do this work through the API to help it integrate with a pipeline that already exists in Jenkins or Azure DevOps?

Questioner
TheDevOpsGuru
Viewed
74
hikaru 2019-07-04 02:12

Although this is a little challenging to answer, as development workflows are often so different, there are several API's available to facilitate various workflows.

At Mininum

Continuum is heavily dependent on telemetry from VCS, so at a minimum set up a webhook from your VCS (GitHub, GitLab, BB, etc) to a project defined in Continuum. This will allow continuum to correlate changes to your code base with "motivators for change" (workitems) in your chosen planning system (VersionOne, Jira, ADO, etc)

The simple act of sending VCS pushes to Continuum activates a ton of value - from Rogue Commit awareness to Risk Analysis.

Using Pipelines

Very often, value stream designers will trigger a Continuum pipeline even if there is other build automation already in place. (Continuum pipelines have many features and integrations not always available in other pure-automation devops tools.) When done this way, the Continuum pipeline will typically wait for data from the external process. Using this endpoint, the external process can signal when it's done, and Continuum will carry on its prescribed path.

Another common approach is to configure the Continuum project to stage the commits and workitems for a subsequent pipeline run to be triggered by the existing external automation. In this case, the manifest of data that was received in the VCS push is set up and ready to run, awaiting a simple trigger from the external job.

Using Packages

In more mature cases, where a value stream is fully defined in Continuum, you will need to embrace the concept of Package Progression. A higher level grouping mechanism that a pipeline, and far higher than simple "build pipelines", the Package Progression is a fully defined workflow and version management process for a product, including the ability to capture manual activities outside the domain of "devops", and generate comprehensive flow metrics. When using Packages, several API's are valuable.

If the external automation has created a build artifact that actually has a chance at being a production release candidate, use this API to tell Continuum to register a new revision of that package.

In cases where the external automation is more comprehensive, maybe even deploying an artifact to destinations along it's way to a production release, use this API to keep Continuum informed as the artifact matures along it's journey, so it can keep flow metrics accurate.

Finally, if your existing automation is so complete as to actually do an official production deployment, use this API to inform Continuum that the revision has been delivered to consumers - that its journey has come to an end.

There are a few more APIs that are helpful for monitoring/managing the Package Progression process:

Given a revision created using new_revision, you can query it's manifest (the list of commits, workitems and artifacts associated with it.

If your Progression implements manual activities (for example you have a need to manually trigger some automated process), this API can programmatically complete that Activity.

Similarly, if you are capturing Controls for your audit and compliance reporting, an external processes can tell Continuum that a control is satisfied, allowing the progression to continue.

Curious about the current state of a Package Revision? This will return details about its current position in the value stream.

Curious about the history of a Package Revision? This will return details about a revisions history through the value stream.

Full API documentation can be found here.

We're happy to talk in more detail if you'd like to chat - support@versionone.com