Sobes.tech
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.