DescriptionAzure 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.
|3.0.1||Added release pipeline orchestration support|
|4.0.1||Added orchestration support for Azure yaml pipelines|
|4.0.3||ReSync support added. Applies to HCL Accelerate version 2.4.4 or later|
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.
|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:
- Using the user interface
- Using a JSON file
Using the user interface
- From the Plugins page, click Settings > Integrations > Plugins.
- Under the Action column for the plugin, click Add Integration.
- On the Add Integration page enter values for the fields used to configure the integration and define communication.
- Click Save.
Using a JSON file
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.
- From a value stream page, download the value stream map. The value stream map is a JSON file used to define integrations.
- Edit the JSON file to include the plugin configuration properties.
- Save and upload the JSON file. This replaces the current JSON file with the new content.
- View the new integration on the Integrations page.
Minimum permission to integrate with Azure Devops
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
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.
- The General Configuration Properties table describes configuration properties used by all plugin integrations.
- The Azure DevOps Properties table describes the Azure DevOps configuration properties are unique to the Azure DevOps plugin and define the connection and communication to the Azure DevOps server. When using the JSON method to integrate the plugin these properties are coded within the
Not all configuration properties are initially displayed in the user interface, to see all properties enable the Hidden field.
|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
|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|
|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 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|
This plugin can be used to orchestrate releases in Azure Devops.
- HCL Accelerate version 2.4.0 and later is required to support release orchestration in Azure Devops.
- Azure Devops plugin version 3.0.1 and later supports release orchestration of Azure Devops release pipelines.
- Azure Devops plugin version 4.0.1 and later supports release orchestration using Azure Devops yaml pipelines.
Orchestrating Azure release pipelines from Accelerate
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,
- Parts Unlimited is the Azure Project and my-new-repo is one of the repositories in the Parts Unlimited project.
- Parts Unlimited/my-new-repo is mapped as the application.
- 20210729.02 is the latest build created in Azure Devops for this repository.
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.
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.
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.
The below picture shows successful deployment.
In short, the following are the needed in order to orchestrate the yaml release pipeline from Azure.
- There should be a separate pipeline for build and / or test and separate pipelines for deployment to each environment.
- Each deployment pipeline must have an initial step to download the artifact. The download artifact step will download the artifact created in the CI pipeline. The download artifact step can specify the pipelineId using a variable named ‘version‘. (pipelineId: $(version)). The value of the ‘version‘ will be passed to the pipeline when it is run from Accelerate.
- Scripted yaml pipeline for build and deployment
- Scripted yaml pipeline for build and release pipeline for deployment
- Designer UI yaml pipeline for build and deployment
- Designer UI yaml pipeline for build and Release pipeline for deployment
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.
Adding automation tasks to a release
After the plugin is integrated automated tasks are available to add as a task within a release.
- Verify that the Azure Devops server is connected to the HCL Accelerate.
- On the Create Task page, select the automation task from the Type field drop-down list.
- Complete the properties required for the task.
- Click Save.