Middle
Ako určiť parametre spustenia pipeline pri úprave určitých zdrojov v Git?
sobes.tech AI
Odpoveď od AI
Použite spúšťače CI/CD viazané na zmeny v konkrétnych súboroch alebo adresároch.
Napríklad v GitLab CI:
# .gitlab-ci.yml
stages:
- build
- test
build_job:
stage: build
script:
- echo "Stavba aplikácie..."
# Spustí sa iba pri zmenách v adresári app/
only:
changes:
- app/**/*
test_job:
stage: test
script:
- echo "Spúšťanie testov..."
# Spustí sa iba pri zmenách v adresári test/
only:
changes:
- test/**/*
Maven v Jenkinsfile s použitím direktívy triggers:
// Jenkinsfile (Deklaratívny pipeline)
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Stavba...'
}
}
stage('Test') {
steps {
echo 'Testovanie...'
}
}
}
// Spustí sa pri zmenách v konkrétnom adresári (vyžaduje plugin SCM API a Job DSL)
// Príklad pre Git s triggerom Poll SCM
triggers {
pollSCM('H * * * *') // Kontroluje každú minútu
}
options {
skipChanges() // Preskočí trigger, ak nie sú zmeny
}
}
Použitím GitHub Actions:
# .github/workflows/ci.yml
name: CI Pipeline
on:
push:
# Spustí pri zmenách v určitých cestách
paths:
- 'src/**'
- 'tests/**'
- '!docs/**' # Ignoruje zmeny v adresári docs/
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- name: Checkout kódu
uses: actions/checkout@v3
- name: Build
run: echo "Stavba..."
- name: Testovanie
run: echo "Testovanie..."
Toto umožňuje spúšťať iba potrebné časti pipeline alebo celý pipeline, šetrí výpočtové zdroje a čas. Presná syntax a možnosti závisia od konkrétneho systému CI/CD.