Since we launched Azure Pipelines in September, we’ve seen strong growth in adoption of our cloud hosted build and deployment service. We’re also learning from many of the open source projects on GitHub starting to take advantage of unlimited build minutes, and with up to 10 concurrent jobs across our hosted Linux, Widows, and Mac machines. We’re seeing it make a positive difference to lots of cross-platform libraries and applications.
Today at Connect();, we’re announcing several new features and integrations with Azure Pipelines – two of which were directly inspired by the open source projects using Azure Pipelines to build and release their applications more easily.
Azure Pipelines extension for Visual Studio Code
As we’ve built out config-as-code (aka YAML pipelines) we’ve been working in lots of our favorite open source projects to help them take advantage of the Azure Pipelines support. As we got to writing and reviewing YAML files, we quickly noticed something missing, a great editing experience in our favorite code editor – Visual Studio Code. Like many tools, Visual Studio Code has syntax highlighting for the structure of YAML, but this requires developers to remember exactly which keys are legal where in the file. This causes developers to flip back and forth to the documentation, and the need to check for typos before committing the YAML file and trying to run the build.
Enter the Azure Pipelines extension for Visual Studio Code. Now, you can have syntax highlighting and IntelliSense that’s aware of the Azure Pipelines YAML format. This means that you’ll be alerted in red “ink” if you write “tasks:” where you should have written “task:”. IntelliSense is also schema-aware. Wherever you are in the file, press Ctrl-Space (or Cmd-Space on macOS) to see what’s accepted at that point in the file.
To get started simply install the Azure Pipelines extension from the Visual Studio Code Marketplace. The source for the extension is open source and available on GitHub if you’d like to learn more about how it works, or want to give feedback or suggest changes.
GitHub Releases are a great way to package software and ship it to end users – and they are heavily used by open source projects. We are excited to announce that you can now seamlessly manage GitHub Releases using Azure Pipelines. You can create new releases, modify drafts, or discard older ones. The new GitHub Releases task supports all the commonly performed actions like attaching binary files, publishing draft releases, and marking a releases as pre-release.
From our own experience, we know that creating release notes can sometimes be a daunting job. To help you with it, this task can automatically compute the list of changes made in this release, including links to the commits and any linked issues, and add it to release notes on GitHub.
All of the built-in tasks for Azure Pipelines, including this new GitHub Releases task, are open source and available on GitHub if you would like to suggest changes or make feature requests join us there.
Azure DevOps Projects – Azure IoT support
With Azure DevOps Projects, we try to make it easy for you to set up a fully functional DevOps pipeline straight from the Azure portal. The pipelines they create are customized to the programming language and application platform you want to use along with which Azure functionality you want to leverage and deploy to. While they are very easy and a super quick way to get started, creating a pipeline with Azure DevOps Projects in the Azure portal also tries to ensure you are set up with all the scaffolding you need to be able to grow and extend your project in the future.
We have seen increasing interest from customers using Azure DevOps to build and deploy their IoT based solutions. Today we have added support in the Azure portal for Azure IoT Edge in the Azure DevOps project workflow to make it easy to get started in those scenarios.
With support for Azure IoT Edge in Azure DevOps projects, you are able to easily get started when deploying IoT Edge modules written in Node.js, Python, Java, .NET Core, or C. Along with this, it sets up everything you would need to develop, build, and deploy your IoT Edge application including:
- A Git code repository complete with a sample IoT Edge application in any of above languages
- A build and a release pipeline setup for deployment to Azure
- Easy provisioning of all Azure resources required for Azure IoT Edge
Once you have answered a few questions to set up your Azure DevOps project from the Azure portal, you can access the sample code and the skeleton CI/CD pipeline using the project in Azure DevOps which is also auto configured for you. You can examine the pipeline that has been created for you and navigate to the Azure resources created to make any incremental changes as your application gets more complex and evolves over time.
By default, the CI/CD pipeline is configured so that any code pushed to your Git repository in Azure Repos will result in a continuous integration build and a continuous deployment process so that your changes will be deployed to your development Azure IoT Edge environment without any additional operational overhead. It’s then very easy from there to add additional production environments with approvers or release gates to automate the delivery of your next Azure IoT Edge application all the way from code, to cloud, to your devices in the field.
ServiceNow integration with Azure Pipelines
Finally, I want to touch on a new integration with one of our partners, ServiceNow. ServiceNow is changing the way enterprises work by expediting and simplifying the delivery of modern IT services. By automating routines activities, tasks and processes at work, ServiceNow helps enterprises gain efficiencies and increase productivity of their workforce.
ServiceNow and Azure Pipelines work together with the new ServiceNow Change Management extensions. Every time you need to update production, you can automate the deployment process using Azure Pipelines, and use ServiceNow Change Management for risk assessment, scheduling, approvals, and oversight.
As you define stages in your pipeline, you can even use ServiceNow Change Management as a release gate to control the promotion of changes from one stage to another from ServiceNow. During the execution of the release pipeline, a new change request would be created in ServiceNow and the pipeline is paused until change is approved ready for implementation.
By adding the “Update ServiceNow Change Request” task to the deployment process in Azure Pipelines, you can keep the ServiceNow change request updated with the status and result of the deployment. Release information on the pipeline is captured in the change request for traceability giving you full bi-directional end-to-end integration between ServiceNow and Azure Pipelines.
If you would like more details, check out the Azure Pipelines application in the ServiceNow store. To install the release gate and update change request tasks for ServiceNow Change Management into Azure Pipelines visit the ServiceNow Change Management extension in the Azure DevOps Marketplace.