Middle
Jak určit parametry spuštění pipeline při úpravách určitých zdrojů v Git?
sobes.tech AI
Odpověď od AI
Použijte spouštěče CI/CD, které jsou vázány na změny v konkrétních souborech nebo adresářích.
Například v GitLab CI:
# .gitlab-ci.yml
stages:
- build
- test
build_job:
stage: build
script:
- echo "Sestavuji aplikaci..."
# Spustí se pouze při změnách v adresáři app/
only:
changes:
- app/**/*
test_job:
stage: test
script:
- echo "Spouštím testy..."
# Spustí se pouze při změnách v adresáři test/
only:
changes:
- test/**/*
Maven v Jenkinsfile s použitím direktivy triggers:
// Jenkinsfile (Deklarativní pipeline)
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Sestavuji...'
}
}
stage('Test') {
steps {
echo 'Testuji...'
}
}
}
// Spustí se při změnách v konkrétním adresáři (vyžaduje plugin SCM API a Job DSL)
// Příklad pro Git s triggerem Poll SCM
triggers {
pollSCM('H * * * *') // Kontrola každou minutu
}
options {
skipChanges() // Přeskočí spouštění, pokud nejsou změny
}
}
Použití GitHub Actions:
# .github/workflows/ci.yml
name: CI Pipeline
on:
push:
# Spustí při změnách v určitých cestách
paths:
- 'src/**'
- 'tests/**'
- '!docs/**' # Ignoruje změny v adresáři docs/
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- name: Checkout kódu
uses: actions/checkout@v3
- name: Sestavení
run: echo "Sestavuji..."
- name: Testování
run: echo "Testuji..."
To umožňuje spouštět pouze potřebné části pipeline nebo celý pipeline, čímž se šetří výpočetní zdroje a čas. Přesná syntaxe a možnosti závisí na konkrétním CI/CD systému.