Middle
¿Cómo determinar los parámetros de inicio del pipeline al editar ciertos recursos en Git?
sobes.tech AI
Respuesta de la IA
Utilizando desencadenantes CI/CD vinculados a cambios en archivos o directorios específicos.
Por ejemplo, en GitLab CI:
# .gitlab-ci.yml
stages:
- build
- test
build_job:
stage: build
script:
- echo "Construyendo la aplicación..."
# Ejecutar solo cuando se cambien archivos en el directorio app/
only:
changes:
- app/**/*
test_job:
stage: test
script:
- echo "Ejecutando pruebas..."
# Ejecutar solo cuando se cambien las pruebas en test/
only:
changes:
- test/**/*
Maven en Jenkinsfile usando la directiva triggers:
// Jenkinsfile (Pipeline Declarativo)
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Construyendo...'
}
}
stage('Test') {
steps {
echo 'Probando...'
}
}
}
// Ejecutar al cambiar en un directorio específico (requiere plugin SCM API y Job DSL)
// Ejemplo para Git con trigger Poll SCM
triggers {
pollSCM('H * * * *') // Consultar cada minuto
}
options {
skipChanges() // Omitir triggers si no hay cambios
}
}
Al usar GitHub Actions:
# .github/workflows/ci.yml
name: CI Pipeline
on:
push:
# Ejecutar al cambiar en rutas específicas
paths:
- 'src/**'
- 'tests/**'
- '!docs/**' # Ignorar cambios en el directorio docs/
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Build
run: echo "Construyendo..."
- name: Test
run: echo "Probando..."
Esto permite ejecutar solo las partes necesarias del pipeline o todo el pipeline completo, ahorrando recursos computacionales y tiempo. La sintaxis exacta y las capacidades dependen del sistema CI/CD específico.