Middle
Cum se determină parametrii de inițiere ai pipeline-ului la editarea anumitor resurse în Git?
sobes.tech AI
Răspuns de la AI
Utilizați declanșatoare CI/CD legate de modificări în fișiere sau directoare specifice.
De exemplu, în GitLab CI:
# .gitlab-ci.yml
stages:
- build
- test
build_job:
stage: build
script:
- echo "Construirea aplicației..."
# Se rulează doar dacă există modificări în directorul app/
only:
changes:
- app/**/*
test_job:
stage: test
script:
- echo "Executarea testelor..."
# Se rulează doar dacă există modificări în directorul test/
only:
changes:
- test/**/*
Maven în Jenkinsfile folosind directiva triggers:
// Jenkinsfile (Pipeline Declarativ)
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Construire...'
}
}
stage('Test') {
steps {
echo 'Testare...'
}
}
}
// Se declanșează la modificări într-un director specific (necesită plugin SCM API și Job DSL)
// Exemplu pentru Git cu trigger Poll SCM
triggers {
pollSCM('H * * * *') // Verifică la fiecare minut
}
options {
skipChanges() // Sare peste trigger dacă nu există modificări
}
}
Când folosiți GitHub Actions:
# .github/workflows/ci.yml
name: Pipeline CI
on:
push:
# Se pornește la modificări în anumite căi
paths:
- 'src/**'
- 'tests/**'
- '!docs/**' # Ignoră modificările din directorul docs/
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- name: Verifică codul
uses: actions/checkout@v3
- name: Construiește
run: echo "Construire..."
- name: Testează
run: echo "Testare..."
Aceasta permite rularea doar a părților necesare ale pipeline-ului sau a întregului pipeline, economisind resurse de calcul și timp. Sintaxa exactă și funcționalitățile depind de sistemul CI/CD specific.