Creating a New Azure DevOps Build and Updating its Variables with REST API.
Azure DevOps is a comprehensive suite of development tools and services designed to help teams build and ship software faster and more efficiently. One of the key features of Azure DevOps is its build system, which allows teams to automate the build, test, and deployment process of their software.
In this article, we will explore how to create a new Azure DevOps build and update its variables using REST API. We will use a sample code snippet that demonstrates how to create a new build using cURL, but you can use any programming language that supports REST API calls.
The first step in creating a new Azure DevOps build is to define its properties, such as the build definition and the build parameters. The build definition defines the build steps, which can include tasks like compiling code, running tests, and creating artifacts. The build parameters are variables that are used by the build steps to customize the build process.
To create a new build using REST API, you need to send a POST request to the Azure DevOps API endpoint that creates builds. The following code snippet demonstrates how to create a new build using cURL:
curl -X POST "https://dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=7.0" \
-H "Content-Type: application/json" \
-d '{
"definition": {
"id": {definition_id}
},
"parameters": "{\"{parameter_name}\":\"{parameter_value}\"}"
}'
Working example with PAT:
curl -X POST "https://{username}:{PAT}@dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=7.0" \
-H "Content-Type: application/json" \
-d '{
"definition": {
"id": {definition_id}
},
"parameters": "{\"{parameter_name}\":\"{parameter_value}\"}"
}'
Let’s break down this code snippet:
- The
-X POST
flag specifies that we want to send a POST request. - The API endpoint for creating builds is https://dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=7.0, where {organization} is the name of your Azure DevOps organization and {project} is the name of your project. The
api-version
parameter specifies the version of the API we want to use. - The
-H "Content-Type: application/json"
flag specifies that we are sending JSON data in the request body. - The request body is a JSON object that contains the following properties:
definition
: an object that specifies the build definition. Theid
property specifies the ID of the build definition.parameters
: a JSON-formatted string that specifies the build parameters. The{parameter_name}
and{parameter_value}
placeholders should be replaced with the actual parameter name and value, respectively.
In the example code snippet, we are creating a new build using the build definition with ID 15 and updating its NUMBER_OF_WORKERS
parameter with the value of a variable 2_NUMBER_OF_WORKERS
, which can be replaced with an actual value at runtime. We are also setting the NUMBER_OF_WORKERS2
parameter to a static value of 5.
To update a build variable using REST API, you need to send a PATCH request to the API endpoint that updates build variables. The following code snippet demonstrates how to update a build variable using cURL:
curl -X PATCH "https://dev.azure.com/{organization}/{project}/_apis/build/builds/{build_id}/variables?api-version=7.0" \
-H "Content-Type: application/json" \
-d '{
"variables": {
"{variable_name}": {
"value": "{new_value}"
}
}
}'
Let’s break down this code snippet:
- The
-X PATCH
flag specifies that we want to send a PATCH request. - The API endpoint for updating build variables is `https://dev.azure.com/{organization}/{project}/_apis/build/builds/{build_id}/variables?api-version=7.0