Middle
Comment déterminer les paramètres de lancement du pipeline lors de la modification de certaines ressources dans Git?
sobes.tech IA
Réponse de l'IA
En utilisant des déclencheurs CI/CD liés à des modifications dans des fichiers ou répertoires spécifiques.
Par exemple, dans GitLab CI :
# .gitlab-ci.yml
stages:
- build
- test
build_job:
stage: build
script:
- echo "Construction de l'application..."
# Exécuter uniquement lorsque des fichiers dans le répertoire app/ changent
only:
changes:
- app/**/*
test_job:
stage: test
script:
- echo "Exécution des tests..."
# Exécuter uniquement lorsque des tests dans test/ changent
only:
changes:
- test/**/*
Maven dans Jenkinsfile avec la directive triggers :
// Jenkinsfile (Pipeline Déclaratif)
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Construction...'
}
}
stage('Test') {
steps {
echo 'Test...'
}
}
}
// Déclenchement lors de changements dans un répertoire spécifique (nécessite le plugin SCM API et Job DSL)
// Exemple pour Git avec trigger Poll SCM
triggers {
pollSCM('H * * * *') // Vérification toutes les minutes
}
options {
skipChanges() // Ignorer les déclencheurs s'il n'y a pas de changements
}
}
En utilisant GitHub Actions :
# .github/workflows/ci.yml
name: Pipeline CI
on:
push:
# Déclenche lors de modifications dans des chemins spécifiques
paths:
- 'src/**'
- 'tests/**'
- '!docs/**' # Ignorer les changements dans le répertoire docs/
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- name: Vérifier le code
uses: actions/checkout@v3
- name: Construire
run: echo "Construction..."
- name: Tester
run: echo "Test..."
Cela permet de lancer uniquement les parties nécessaires du pipeline ou l'ensemble du pipeline, économisant ainsi des ressources et du temps. La syntaxe exacte et les fonctionnalités dépendent du système CI/CD spécifique.