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.