# Getting Started

Azure Pipelines is part of Azure Devops. It lets you implement continuous integration and continuous delivery (CI/CD).

During this workshop, you will learn how to create a pipeline to build a Maven / Java application and a NodeJs application. You will also discover Azure Pipelines features, such as pipeline caching, variables, parameters and templating.

At each steps of this workshop, you can found the solution in a Git branch.

Git branch

Here's the Git branch!

# Anatomy of a pipeline

Anatomy of a pipeline

A pipeline is composed of stages, each stage is run sequentially. In this diagram, Stage 2 will be executed right after Stage 1. A stage is composed of jobs. For example, Stage 1 has 2 jobs : Job A and B. A job is executed on an agent. An agent is a machine, it can be compared to a Jenkins slave. With Azure, an agent can be a Microsoft-hosted or self-hosted agent. We will talk more about agents later. Inside a stage, each job can be executed simultaneously or sequentially. Finally, a job is composed of steps. A step can be a Microsoft task or script and each step is run sequentially.

If you want to go deeper with those concepts, you can browse the official documentation of pipeline concepts and agent.

# Pricing & Pool Agent

Azure Pipelines is free to use on a public project. . On a private project, you can run up to 1,800 minutes (30 hours) of pipeline jobs for free every month.

You can have a look at all the available types of agent here. Each of them come with a set of installed softwares. During this workshop, we are going to use ubuntu-latest.

# Setup

First of all, you have to fork this repository to your Github account

https://github.com/vgallet/workshop-pipeline

Fork Repository

Then, in order to start with Azure Pipelines you need to create a Microsoft account if you haven’t one.

Once you are logged in, you have to create a project

Create Azure Pipelines Project

Next, you have to select your repository in Github

Select Github Repository

And finally select “starter pipeline”. It will automatically create a starter pipeline file inside your repository.

Create Azure Pipelines YAML File