Sunteți pe pagina 1din 10

06/12/2018 Deploying Windows Service using Azure Pipeline - CodeProject

Deploying Windows Service using Azure Pipeline


Prabakaran Rajendran, 14 Nov 2018

Setting up automated build and deployment for Windows service using Azure Pipeline

Introduction
This article helps you to understand how to setup automated build and deployment from GIT repository using Azure Pipeline. Build,
test, and deploy with CI/CD that works with any language, platform, and cloud. Connect to GitHub or any other Git provider and
deploy continuously.

Create Project in GIT Repository


Create a win service project in Visual Studio and configure the git repository to push the code into GIT. Once the code pushed into
GIT, the build will kick start automatically.

Create an Organization in Azure DevOps


We need to create organization and project in Azure devops in order to start using Azure Pipeline. The below Microsoft document
shows the steps how to create an organization with a personal Microsoft account or a work or school account. Use your work or
school account to automatically connect your organization to your Azure AD.

https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/create-organization?view=vsts

Follow the above link to complete the organization setup and create the project. Once this step is completed, we are ready to setup
our first build pipeline.

Setup the Build Pipeline


I created a project named Main. Go to the overview page of the project and then choose Pipelines -> Builds -> New -> New build
pipeline

https://www.codeproject.com/Articles/1266885/Deploying-Windows-Service-using-Azure-Pipeline?display=Print 1/10
06/12/2018 Deploying Windows Service using Azure Pipeline - CodeProject

New window will be opened to choose source branch, repository and the source branch for build. Select the options as below
according to your project.

Choose the .NET Desktop template since I can make use of most of the pre-defined pipeline steps which fit for my windows service
build, enter the name of the pipeline and choose any given Microsoft hosted agent or you can choose your own job (Default - No
agents). For this example, I am using the Microsoft hosted agent (Hosted VS2017) which is a good fit for my build. To understand
more about agent pools, click here.

https://www.codeproject.com/Articles/1266885/Deploying-Windows-Service-using-Azure-Pipeline?display=Print 2/10
06/12/2018 Deploying Windows Service using Azure Pipeline - CodeProject

.NET Desktop template has the list of build_pipeline5.JPG default jobs, for this project, I just leave with the default values for Nuget,
Nuget restore, Build solution and VsTest tasks. If you don't want any of these tasks, you can just select the specific task under the
agent and remove it.

Choose the Publish symbols path task and enter the details as below and leave the other fields with the default values.

Choose the Copy Files task and enter the information as below and leave the other fields with the default values.

https://www.codeproject.com/Articles/1266885/Deploying-Windows-Service-using-Azure-Pipeline?display=Print 3/10
06/12/2018 Deploying Windows Service using Azure Pipeline - CodeProject

Choose the Publish Artifact task, enter the information as below and leave the other fields with the default values.

Then click Save.


Get the status batch (refer to the section Get the status batch in this Microsoft documentation) and add into the README.md file in
github branch as below.

Choose the trigger menu and select Enable continuous integration option and save it.

https://www.codeproject.com/Articles/1266885/Deploying-Windows-Service-using-Azure-Pipeline?display=Print 4/10
06/12/2018 Deploying Windows Service using Azure Pipeline - CodeProject

First build will be queued and started. Build is triggered and succeeded. Now we automated the build using Azure Pipeline.
Hereafter, whenever there is a change in the code, build will be triggered automatically.

Create Deployment Groups and Provision Agents


To access the target server to deploy application, we need to create deployment group. Deployment group is a logical set of
deployment target machines that have agents installed on each server.
Follow this link to create deployment group and provision agents in the VM.
In this stage, deployment group is created in Azure DevOps and the agent installation script is run successfully in the target
machine. Next, we proceed to setup the release pipeline.

Setup the Release Pipeline


Follow the below steps to setup the release pipeline.

1. Choose release pipeline -> New -> New release pipeline -> Select template -> Choose Empty Job

https://www.codeproject.com/Articles/1266885/Deploying-Windows-Service-using-Azure-Pipeline?display=Print 5/10
06/12/2018 Deploying Windows Service using Azure Pipeline - CodeProject

2. Select artifact task and fill in the information as below and click add. This is where we configure the build artifact as the
source for the release.

3. Enable the continuous release as below. It is applicable mostly for SIT/UAT environments. For production environment, it
will not be the case as we deploy based on schedules.

4. Select view stage tasks and add/modify the below tasks in sequence. Refer to the below screenshots. Select stage task and
add a deployment group job. Once added, select the deployment group job and update the information as below and leave
other fields with the default values.

https://www.codeproject.com/Articles/1266885/Deploying-Windows-Service-using-Azure-Pipeline?display=Print 6/10
06/12/2018 Deploying Windows Service using Azure Pipeline - CodeProject

5. Select the Agent job and update the information as below.

6. Install WinRM File Copy task template from the market place and add this task by clicking Add a task to Agent job.

https://www.codeproject.com/Articles/1266885/Deploying-Windows-Service-using-Azure-Pipeline?display=Print 7/10
06/12/2018 Deploying Windows Service using Azure Pipeline - CodeProject

DisplayName can be any name


Source is the path where the artifact resides
Machine is the Virtual Machine IP (Target server IP)
Enter the VM Admin Login and Password
Virtual machine folder path where you want to host your windows service

7. Add Command Line task and update the template as below:

This SC commands helps to stop, delete, install and start the windows service in the Virtual Machine. You can modify the
scripts according to your needs.

8. Click Save and choose Release to start deploying the windows service to the target server.

Here you go! Successfully deployed the win service into the virtual machine.

https://www.codeproject.com/Articles/1266885/Deploying-Windows-Service-using-Azure-Pipeline?display=Print 8/10
06/12/2018 Deploying Windows Service using Azure Pipeline - CodeProject

Points of Interest
It's interesting when I started exploring Azure devops, it makes life easy :). Lot more to learn and make use of it in your projects.

This article makes you understand how to setting up the CI/CD pipeline. You can experiment other futures of Azure DevOps and
strengthen your DevOps skills .

Happy learning! Any improvements on this article, please comment below.

License
This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author


Prabakaran Rajendran
Technical Lead
Singapore

This member doesn't quite have enough reputation to be able to display their biography and homepage.

Comments and Discussions


0 messages have been posted for this article Visit https://www.codeproject.com/Articles/1266885/Deploying-Windows-
Service-using-Azure-Pipeline to post and view comments on this article, or click here to get a print view with messages.

https://www.codeproject.com/Articles/1266885/Deploying-Windows-Service-using-Azure-Pipeline?display=Print 9/10
06/12/2018 Deploying Windows Service using Azure Pipeline - CodeProject
Permalink | Advertise | Privacy | Cookies | Terms of Use | Mobile Article Copyright 2018 by Prabakaran Rajendran
Web01 | 2.8.181205.1 | Last Updated 14 Nov 2018 Everything else Copyright © CodeProject, 1999-2018

https://www.codeproject.com/Articles/1266885/Deploying-Windows-Service-using-Azure-Pipeline?display=Print 10/10

S-ar putea să vă placă și