En aquest tema, explorarem com utilitzar PowerShell en el context de pipelines de CI/CD (Integració Contínua i Distribució Contínua). Els pipelines de CI/CD són essencials per a l'automatització del desenvolupament de programari, permetent la integració i distribució contínua de codi de manera eficient i fiable.

Objectius del Tema

  • Comprendre què són els pipelines de CI/CD.
  • Aprendre a integrar PowerShell en pipelines de CI/CD.
  • Veure exemples pràctics d'ús de PowerShell en pipelines.
  • Realitzar exercicis pràctics per reforçar els conceptes apresos.

Què són els Pipelines de CI/CD?

Integració Contínua (CI)

La integració contínua és una pràctica de desenvolupament de programari on els desenvolupadors integren el seu codi en un repositori compartit diverses vegades al dia. Cada integració és verificada per una build automatitzada (incloent proves) per detectar errors tan aviat com sigui possible.

Distribució Contínua (CD)

La distribució contínua és una extensió de la integració contínua que permet la distribució automàtica del codi verificat a un entorn de producció o pre-producció. Això assegura que el codi sempre estigui en un estat desplegable.

Integració de PowerShell en Pipelines de CI/CD

PowerShell pot ser utilitzat en diverses etapes dels pipelines de CI/CD per automatitzar tasques com la compilació, les proves, el desplegament i la configuració de l'entorn. A continuació, veurem com integrar PowerShell en pipelines utilitzant Azure DevOps com a exemple.

Exemple: Azure DevOps

1. Creació d'un Pipeline de Build

  1. Configuració del Repositori:

    • Assegura't que el teu codi estigui en un repositori de Git (Azure Repos, GitHub, etc.).
  2. Creació del Pipeline:

    • A Azure DevOps, ves a la secció de Pipelines i crea un nou pipeline.
    • Selecciona el repositori on es troba el teu codi.
  3. Definició del Pipeline:

    • Utilitza un fitxer YAML per definir el pipeline. A continuació es mostra un exemple bàsic que executa un script de PowerShell:
trigger:
- main

pool:
  vmImage: 'windows-latest'

steps:
- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: |
      Write-Output "Iniciant la build..."
      # Executa el teu script de PowerShell aquí
      .\scripts\build.ps1

2. Creació d'un Pipeline de Release

  1. Configuració del Pipeline de Release:

    • A Azure DevOps, ves a la secció de Releases i crea un nou pipeline de release.
    • Defineix l'artifact que serà desplegat (per exemple, el resultat de la build anterior).
  2. Definició de les Etapes de Release:

    • Afegeix una nova etapa per desplegar l'artifact.
    • Afegeix una tasca de PowerShell per executar scripts de desplegament:
steps:
- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: |
      Write-Output "Desplegant l'aplicació..."
      # Executa el teu script de PowerShell aquí
      .\scripts\deploy.ps1

Exemples Pràctics

Exemple 1: Compilació i Proves

# build.ps1
Write-Output "Compilant el projecte..."
# Comanda per compilar el projecte
dotnet build

Write-Output "Executant les proves..."
# Comanda per executar les proves
dotnet test

Exemple 2: Desplegament

# deploy.ps1
Write-Output "Desplegant l'aplicació..."
# Comanda per copiar els fitxers a l'entorn de producció
Copy-Item -Path "C:\source\*" -Destination "C:\inetpub\wwwroot" -Recurse

Exercicis Pràctics

Exercici 1: Crear un Pipeline de Build

  1. Crea un repositori de Git amb un projecte de .NET.
  2. Defineix un pipeline de build a Azure DevOps que compili el projecte i executi les proves utilitzant un script de PowerShell.

Exercici 2: Crear un Pipeline de Release

  1. Utilitza l'artifact generat pel pipeline de build anterior.
  2. Defineix un pipeline de release a Azure DevOps que desplegui l'artifact a un servidor de prova utilitzant un script de PowerShell.

Solucions als Exercicis

Solució a l'Exercici 1

trigger:
- main

pool:
  vmImage: 'windows-latest'

steps:
- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: |
      Write-Output "Iniciant la build..."
      dotnet build
      Write-Output "Executant les proves..."
      dotnet test

Solució a l'Exercici 2

steps:
- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: |
      Write-Output "Desplegant l'aplicació..."
      Copy-Item -Path "C:\source\*" -Destination "C:\inetpub\wwwroot" -Recurse

Resum

En aquest tema, hem après què són els pipelines de CI/CD i com podem integrar PowerShell en aquests pipelines per automatitzar tasques de compilació, proves i desplegament. Hem vist exemples pràctics i hem realitzat exercicis per reforçar els conceptes apresos. Amb aquests coneixements, estàs preparat per utilitzar PowerShell en els teus propis pipelines de CI/CD i millorar l'eficiència del teu procés de desenvolupament de programari.

Curs de PowerShell

Mòdul 1: Introducció a PowerShell

Mòdul 2: Scripting Bàsic

Mòdul 3: Treballant amb Objectes

Mòdul 4: Tècniques Avançades de Scripting

Mòdul 5: Automatització i Programació de Tasques

Mòdul 6: Remotització amb PowerShell

Mòdul 7: Funcions Avançades de PowerShell

Mòdul 8: PowerShell i DevOps

Mòdul 9: Millors Pràctiques i Consells Avançats

© Copyright 2024. Tots els drets reservats