Search notes:

Azure Pipelines

Azure Pipelines is Azure's solution for continuous integration (CI) and continuous delivery (CD): It allows to continuously build, test, and deploy to any platform and the cloud.
Azure Pipelines supports(?) the following programming languages:

Deployment targets

Deployment targets include

Supported package formats

Azure Pipelines allows to produce packages in the following formats
Compare with Azure Artifacts

Platforms

Azure Pipelines builds on

Version control systems

Azure Pipelines requires a version control system (VCS) of which the following ones are supported
When code is pushed to the VCS, a default trigger is kicked which can be hooked to build and deploy the application and the monitor build's and deployment's results.

Resources

Resources are entities that are consumed anywhere in a pipeline but live outside of the pipeline.
Such resources include
Agent pools Used to build or deploy software
Variable groups A variable groups stores named values («variables»). These values are available across multiple pipelines. Variable groups are managed in the Library page under Pipelines
Secure files Stores (encrypted) files such as signing certificates, Apple provisioning profiles, Android keystore files, SSH keys (etc.?) without having to commit then into the source code repository. The content of a secure file is only available during the build or release pipeline by referencing them from a task.
Service connections allows to connect to external and remote services that are used to execute tasks in a job
Environments An application is deployed to an environment (such as Kubernetes clusters, virtual machines, web apps etc.). Typical names for environments include: Dev, Test, QA, Staging and Production
Repositories accesses templates in another repository
Artifacts such as Azure Pipelines or Jenkins
Pipelines (huh, is this recursive?)
Containers For example: Docker hub or Azure Container Registry
The owner of a resource can define a check that must be satisfied before the pipeline (or more accurately: the stage) can consume the resource. If this check is not satisfied, the stage won't run.

Defining pipelines

A pipeline is either defined with
A definition of a pipeline is versioned along with the code. Thus, even code branches can have their own pipeline definition.
Typically, there are at least the following two pipeline (types?):

Stages

A pipeline consists of one or more stages.
A stage consists of one or more jobs.
Stages organize jobs in a pipeline.
By default, stages run in a sequence.
Approval checks allow to manually control if the next stage should run.
Typical examples of stages are
  • build the application
  • run test suite xyz
  • deploy to UAT

Jobs

A job is a unit of work which is assignable to the same machine.
A job is either agentless or is executed on an agent.

Steps

A step is the smallest building block of a pipeline.
A step runs in its own process on an agent.
A step has access to the pipeline workspace on the local hard drive.
A step is either
  • a script, a
  • a task (which is essentially a prepackaged script), or a
  • reference to an external template

Running pipelines (triggers)

A pipeline is executed when a trigger causes it to do so.

Templates

Templates are files that contain sections that are used in multiple places in the pipeline.
There are four kinds of templates:

Agent

An agent is a the infrastructure that executes jobs.

See also

Azure DevOps, Azure Portal
Microsoft Build Engine
Software Development Life Cycle

Index