Sobes.tech
Middle

Como determinar os parâmetros de execução do pipeline ao editar certos recursos no Git?

sobes.tech IA

Resposta da IA

Utilizando gatilhos CI/CD ligados a alterações em ficheiros ou diretórios específicos.

Por exemplo, no GitLab CI:

# .gitlab-ci.yml

stages:
  - build
  - test

build_job:
  stage: build
  script:
    - echo "A construir a aplicação..."
  # Executar apenas quando houver alterações na diretoria app/
  only:
    changes:
      - app/**/*

test_job:
  stage: test
  script:
    - echo "A executar testes..."
  # Executar apenas quando houver alterações na diretoria test/
  only:
    changes:
      - test/**/*

Maven no Jenkinsfile usando a diretiva triggers:

// Jenkinsfile (Pipeline Declarativo)

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                echo 'A construir...'
            }
        }
        stage('Test') {
            steps {
                echo 'A testar...'
            }
        }
    }
    // Executar ao alterar numa diretoria específica (requer plugin SCM API e Job DSL)
    // Exemplo para Git com trigger Poll SCM
    triggers {
        pollSCM('H * * * *') // Verificar a cada minuto
    }
    options {
        skipChanges() // Ignorar triggers se não houver alterações
    }
}

Ao usar GitHub Actions:

# .github/workflows/ci.yml

name: Pipeline CI

on:
  push:
    # Executar ao alterar em caminhos específicos
    paths:
      - 'src/**'
      - 'tests/**'
      - '!docs/**' # Ignorar alterações na diretoria docs/

jobs:
  build-and-test:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout do código
        uses: actions/checkout@v3
      - name: Construir
        run: echo "A construir..."
      - name: Testar
        run: echo "A testar..."

Isto permite executar apenas as partes necessárias do pipeline ou todo o pipeline, economizando recursos computacionais e tempo. A sintaxe exata e as funcionalidades dependem do sistema CI/CD específico.