Description
Azure DevOps (formerly Microsoft Team Foundation Server (TFS) or Microsoft TFS) provides services to manage end-to-end flow of a development project. It contains services to share code, track work, and ship software.
Azure DevOps (formerly Microsoft Team Foundation Server (TFS) or Microsoft TFS) provides services to manage end-to-end flow of a development project. It contains services to share code, track work, and ship software.
The Azure DevOps plugin provides for integration with an Azure DevOps server.
This plugin imports work items, commits, pull requests, builds, and deployment data from an Azure DevOps server and saves them as HCL Accelerate issues. Data between the Azure DevOps server and the HCL Accelerate server is synchronized every five minutes.
The plugin can also orchestrate the deployments in Azure DevOps from HCL Accelerate.
This plugin requires HCL Accelerate version 2.0 or later.
The following table describes the changes made in each plugin version.
Version | Description |
---|---|
4.0.35 | Clarifying delimitation problem for properties used. (Example : Comma separated list) |
4.0.29 | Optional feature of pushing pipeline runs with predefined tags as builds to HCL Accelerate. Bug fix related to build status |
4.0.28 | Additional Branch field added |
4.0.26 | Auto generated User Access Key Related Changes.(For accelerate version 3.0.0 we started supporting auto generated user access key. For version prior to 3.0.0 manually add user access key in the hidden field.) |
4.0.16 | UAK Changes |
4.0.15 | Adding Logger and ucv functionality |
4.0.3 | Resync data feature added |
4.0.1 | support for release orchestration |
3.0.1 | Added Deployment Orchestration Support for Azure Release pipeline |
2.0.17 | Performance Improvement |
2.0.14 | Removed IBM related keywords |
2.0.4 | bug fixes for issues in sync deployments |
To use the Azure DevOps plugin, the plugin must be loaded and an instance created before you can configure the plugin integration. You define configuration properties in the user interface or in a JSON file.
The Azure DevOps plugin supports scheduled events integration which are listed in the following table.
Name | Description |
---|---|
SyncAzureIssuesEvent | Queries the Query Azure DevOps server for new or updated pull requests and commits. |
SyncAzureGitDataEvent | Queries the Azure DevOps server for new or updated work items. |
SyncAzureBuildsEvent | Queries the Query Azure DevOps server for build data. |
SyncAzurePipelines | Queries the Azure DevOps server for deployment data. |
There are two methods to integrate the plugin:
The JSON file contains the information for creating a value stream and integrating with the Azure DevOps server. The following table describes the information for the creating a HCL Accelerate value stream map.
The Azure Devops Account used to generate the token must have the below permission:
1) Build – Read Permission
2) Code – Read Permission
3) Project and Team – Read Permission
4) Release – Read Permission
5) Work Items – Read Permission
A new hidden field named as Build Tags is added to Azure Plugin for version 4.0.29 and later:
This field can take the comma-separated list to tags that have been added to a pipeline run. If you provide such tags, only the pipeline runs with these specific tags will be pulled to HCL Accelerate as part of SyncAzureBuildsEvent.
This is how you can add tags to your pipeline run in Azure Devops:
Here, HCL Accelerate is the tag that has been added to the pipeline run.
The following tables describe the properties used to configure the integration. Each table contains the field name when using the user interface and the property name when using a JSON file.
properties
configuration property.Not all configuration properties are initially displayed in the user interface, to see all properties enable the Hidden field.
Name | Description | Required | Property Name |
---|---|---|---|
NA | The version of the plugin that you want to use. To view available versions, click the Version History tab. If a value is not specified, the version named latest is used. | No | image |
Integration Name | An assigned name to the value stream. | Yes | name |
Logging Level | The level of Log4j messages to display in the log file. Valid values are: all, debug, info, warn, error, fatal, off, and trace. | No | loggingLevel |
NA | List of plugin configuration properties used to connect and communicate with the Azure DevOps server. Enclose the properties within braces. | Yes | properties |
The name of the tenant. | Yes | tenant_id | |
NA | Unique identifier assigned to the plugin. The value for the Azure DevOps plugin is ucv-ext-azure |
Yes | type |
Name | Type | Description | Required | Property Name |
---|---|---|---|---|
Access Token | Secure | The access token to authenticate with the Azure DevOps server. You can use either this property or the Password property to authenticate with the server. | No | accessToken |
Organization | String | The name of the Azure organization in which the specified project exists. | Yes | organization |
Password | Secure | The password used to authenticate with the Azure server. Use either this or an access token. | No | password |
Project | String | The name of the Azure DevOps project from which to pull data. | Yes | project |
Branch Name | String | The branch to pull commits from. | No | branchName |
Additional Branches | Array | A comma seperated list of additional branches to collect commits from besides the main one, leave blank if not needed. | No | otherBranches |
Proxy Password | Secure | The password used to authenticate with the proxy server. | No | proxyPassword |
Proxy Server | String | The URL of the proxy server including the port number. | No | proxyServer |
Proxy User Name | String | The user name used to authenticate with the proxy server. | No | proxyUsername |
Repositories | Array | A comma seperated list of repositories from which to import pull request, commit, and build data. | No | repositories |
URL | String | The URL of the Azure DevOps server. | Yes | baseUrl |
User Name | String | The user name to authenticate with the Azure DevOps server. | No | username |
HCL Accelerate User Access Key | Secure | The user access key to authenticate with the HCL Accelerate server. | No | ucvAccessKey |
Build Tags | Array | Comma separated list of tags for pushing pipeline runs as build to this server. If kept empty all the pipeline runs will be pushed as builds. | No | tags |
This plugin can be used to orchestrate releases in Azure Devops.
The plugin syncs repositories, builds, pipelines, releases definitions, environments, pipeline runs and release executions every five minutes with Accelerate. A repository in Azure can be mapped as an application in Accelerate pipeline. The build that is created after mapping the application appears as version in the Input column of the Accelerate pipeline.
In the following graphic,
The release definitions can be mapped as processes in the Accelerate pipeline. For example, Demo-success is the release definition which is deploying to QA environment as shown in the following graphic. The graphic also shows that Demo-success is mapped as the process for Accelerate QA environment.
QA-my-new-repo is the release environment in Azure Devops for the above release definition. The following graphic shows the mapping the Azure Devops environment in the Accelerate pipeline.
To orchestrate the deployment from Accelerate, select the version using the deploy option as show in the below picture.
A new release is created in Azure Devops. The deployed version is synced with Accelerate within 5 minutes of deployment as show in the below picture.
Notes
In order to orchestrate the release in Azure using this plugin, there should be separate release pipelines defined for each stage.
Orchestrating Azure yaml pipelines from Accelerate
In order to orchestrate the Azure yaml pipeline using this plugin, the yaml pipeline has to be exploded in such a way that an Azure pipeline deploys to a single environment in Azure.
In the below example, ‘pipelines-javascript-new’ is the project name as well as the repo name. The Azure yaml pipeline is exploded into two pipelines, ‘pipelines-javascript-new-CI’ and ‘pipelines-javascript-new-CD’. ‘pipelines-javascript-new-CI’ contains the build and test jobs and also the ‘PublishBuildArtifacts@1’ task which uploads the artifact to a to a staging directory. ‘pipelines-javascript-new-CD’ downloads the artifact created in ‘piplines-javascript-new-CI’ and performs the deployment.
The following picture shows the yaml script for ‘pipeline-javascript-new-CI’.
The following picture shows the yaml script for ‘pipelines-javascript-new-CD’. The pipeline script downloads the artifact created by the ‘pipelines-javascript-new-CI’ pipeline and then deploys the artifact. A variable ‘version‘ defines the ‘pipelineId‘ (line number 15 in the yaml script) which is the version of the artifact to be downloaded. The version will be passed to the pipeline when the pipeline is run from Accelerate.
The below picture shows the ‘pipelines-javascript-new’ repo defined as an application in Accelerate and the ‘pipelines-javascript-new-CD’ pipeline being mapped as a process in Accelerate.
The below picture shows the environment being mapped.
The deployment can be started by clicking on the deploy button in the drop down for the environment as show in the below picture.
The version to be deployed can be selected as follows.
When the deploy button is clicked, plugin will run the mapped Azure pipeline (pipelines-javascript-new-CD). The selected version number will be set as the value for the ‘version‘ variable in ‘pipelines-javascript-new-CD’ pipeline. The artifact with the above selected version will be downloaded and deployed to the Dev environment.
The below picture shows successful deployment.
In short, the following are the needed in order to orchestrate the yaml release pipeline from Azure.
Notes
Plugin supports the release orchestration of:
Plugin does not support release orchestration if the source code is not in Azure, i.e, if the source code is in GitHub or BitBucket, release orchestration from Accelerate is not possible.
The following automation tasks are available in the ServiceNow plugin:
Use this step to deploy an Azure Devops application.
This step has no input properties.
After the plugin is integrated automated tasks are available to add as a task within a release.
Uploaded: 05-Jul-2024 07:59
docker pull hclcr.io/accelerate/ucv-ext-azure:4.0.44
Uploaded: 05-Jul-2024 07:50
docker pull hclcr.io/accelerate/ucv-ext-azure:4.0.43
Uploaded: 16-Feb-2023 11:42
docker pull hclcr.io/accelerate/ucv-ext-azure:4.0.40
Uploaded: 10-Oct-2022 06:02
docker pull hclcr.io/accelerate/ucv-ext-azure:4.0.38
Uploaded: 29-Sep-2022 09:53
docker pull hclcr.io/accelerate/ucv-ext-azure:4.0.37
Uploaded: 26-Aug-2022 09:38
docker pull hclcr.io/accelerate/ucv-ext-azure:4.0.36
Uploaded: 17-Aug-2022 08:00
docker pull hclcr.io/accelerate/ucv-ext-azure:4.0.35
Uploaded: 02-May-2022 15:50
docker pull hclcr.io/accelerate/ucv-ext-azure:4.0.29
Uploaded: 08-Apr-2022 06:10
docker pull hclcr.io/accelerate/ucv-ext-azure:4.0.28
Uploaded: 08-Mar-2022 13:09
docker pull hclcr.io/accelerate/ucv-ext-azure:4.0.26
Uploaded: 03-Dec-2021 13:10
docker pull hclcr.io/accelerate/ucv-ext-azure:4.0.16
Uploaded: 01-Dec-2021 16:18
docker pull hclcr.io/accelerate/ucv-ext-azure:4.0.15
Uploaded: 30-Sep-2021 05:32
docker pull hclcr.io/accelerate/ucv-ext-azure:4.0.3
Uploaded: 29-Jul-2021 11:25
docker pull hclcr.io/accelerate/ucv-ext-azure:4.0.1
Uploaded: 02-Jul-2021 14:14
docker pull hclcr.io/accelerate/ucv-ext-azure:3.0.1
Uploaded: 23-Jun-2021 05:58
docker pull hclcr.io/accelerate/ucv-ext-azure:2.0.17
Uploaded: 03-May-2021 13:26
docker pull hclcr.io/accelerate/ucv-ext-azure:2.0.14
Uploaded: 08-Feb-2021 07:31
docker pull hclcr.io/accelerate/ucv-ext-azure:2.0.4