Module 8: CI/CD Pipelines

Continuous Integration and Deployment with Azure Pipelines.

Duration: 90 minutes

Learning Objectives

  • • Create and configure Azure Pipelines
  • • Set up build and release processes
  • • Integrate automated testing
  • • Implement deployment strategies

Key Topics

Pipeline Creation and Configuration

Setting up Azure Pipelines for automated builds and deployments.

# azure-pipelines.yml
trigger:
- main

pool:
  vmImage: 'ubuntu-latest'

variables:
  buildConfiguration: 'Release'

steps:
- task: DotNetCoreCLI@2
  displayName: 'Restore packages'
  inputs:
    command: 'restore'
    projects: '**/*.csproj'

Build and Release Processes

Automating the complete software delivery pipeline.

  • • Source code compilation
  • • Unit test execution
  • • Code quality analysis
  • • Artifact generation
  • • Deployment to environments

Automated Testing Integration

Incorporating testing into the CI/CD pipeline.

# Testing in pipeline
- task: DotNetCoreCLI@2
  displayName: 'Run tests'
  inputs:
    command: 'test'
    projects: '**/*Tests.csproj'
    arguments: '--configuration $(buildConfiguration) --collect "Code coverage"'

Deployment Strategies

Implementing different deployment approaches for various scenarios.

  • • Blue-Green deployments
  • • Rolling deployments
  • • Canary releases
  • • Feature flags
  • • Environment-specific configurations

Hands-on Exercises

Exercise 1: Create CI Pipeline

Set up a continuous integration pipeline for the Student Management application.

Exercise 2: Implement CD Pipeline

Create a continuous deployment pipeline with automated testing and deployment.

Exercise 3: Multi-Environment Deployment

Configure deployment to multiple environments (dev, staging, production).