Descreva como construir um pipeline de CI/CD usando GitHub Actions para deploy em Azure

Question7

TagsAzure, GitHub Actions, CI/CD, DevOps, Cloud, GitHub

A automação de pipelines de CI/CD com GitHub Actions é uma prática moderna que acelera entregas, garante qualidade e reduz erros em projetos hospedados no Azure.

[GitHub Actions] — Conceito-chave: Pipeline de CI/CD para Azure

GitHub Actions permite criar fluxos de trabalho automatizados (workflows) que integram, testam e fazem deploy de aplicações diretamente a partir do repositório GitHub para o Azure, utilizando arquivos YAML versionados junto ao código.

O que é um pipeline de CI/CD com GitHub Actions?

Um pipeline de CI/CD (Integração Contínua e Entrega Contínua) automatiza etapas como build, testes, validação e deploy de aplicações. Com GitHub Actions, você define essas etapas em um arquivo .github/workflows/main.yml (ou nome similar), especificando jobs, triggers e ações a serem executadas.

Por que usar GitHub Actions para deploy em Azure?

  • Integração nativa: GitHub Actions possui ações oficiais para Azure, facilitando autenticação e deploy.
  • Automação ponta a ponta: Desde o commit até o deploy, todo o fluxo é automatizado e auditável.
  • Escalabilidade e flexibilidade: Suporta múltiplos ambientes, branches e estratégias de deploy (blue/green, canary, etc.).
  • Segurança: Permite uso de secrets e integração com Azure para autenticação segura.

[GitHub Actions] — Pipeline de CI/CD para Azure - Exemplo prático

Suponha que você queira automatizar o deploy de uma aplicação Node.js para o Azure App Service. O pipeline pode ser definido assim:

name: CI/CD para Azure App Service

on:
  push:
    branches: [ main ]

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout do código
        uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '18'

      - name: Instalar dependências
        run: npm install

      - name: Rodar testes
        run: npm test

      - name: Build da aplicação
        run: npm run build

      - name: Login no Azure
        uses: azure/login@v2
        with:
          creds: $

      - name: Deploy para Azure App Service
        uses: azure/webapps-deploy@v3
        with:
          app-name: 'meu-app-service'
          slot-name: 'production'
          package: '.'

Explicação dos principais pontos:

  • O workflow é disparado a cada push na branch main.
  • O código é baixado, dependências instaladas, testes executados e a aplicação é buildada.
  • O login no Azure é feito usando um secret seguro (AZURE_CREDENTIALS), geralmente criado via Azure Service Principal.
  • O deploy é realizado usando a ação oficial do Azure para App Service.

Esse padrão pode ser adaptado para outros tipos de aplicações e serviços Azure (Functions, Containers, Static Web Apps, etc.), promovendo entregas rápidas, seguras e auditáveis.