Middle
Hogyan határozhatók meg a pipeline indítási paraméterei bizonyos erőforrások szerkesztésekor Git-ben?
sobes.tech MI
Válasz az MI-től
Használjon CI/CD indítókat, amelyek egy adott fájl vagy könyvtár változásaihoz vannak kötve.
Például GitLab CI-ben:
# .gitlab-ci.yml
stages:
- build
- test
build_job:
stage: build
script:
- echo "Alkalmazás építése..."
# Csak akkor fusson, ha az app/ könyvtárban változás történt
only:
changes:
- app/**/*
test_job:
stage: test
script:
- echo "Tesztelés..."
# Csak akkor fusson, ha a test/ könyvtárban változás történt
only:
changes:
- test/**/*
Maven Jenkinsfile-ben a triggers direktívával:
// Jenkinsfile (Deklaratív Pipeline)
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Építés...'
}
}
stage('Test') {
steps {
echo 'Tesztelés...'
}
}
}
// Indítás, ha egy adott könyvtárban változás történt (szükséges SCM API és Job DSL plugin)
// Példa Git esetén, Poll SCM triggerrel
triggers {
pollSCM('H * * * *') // Minden percben ellenőriz
}
options {
skipChanges() // Átugorja a trigger-t, ha nincs változás
}
}
GitHub Actions használatával:
# .github/workflows/ci.yml
name: CI Pipeline
on:
push:
# Indít, ha változás történt bizonyos útvonalakon
paths:
- 'src/**'
- 'tests/**'
- '!docs/**' # A docs/ könyvtár változásait figyelmen kívül hagyja
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- name: Kód ellenőrzése
uses: actions/checkout@v3
- name: Építés
run: echo "Építés..."
- name: Tesztelés
run: echo "Tesztelés..."
Ez lehetővé teszi, hogy csak a pipeline szükséges részeit vagy az egész pipeline-t futtassa, így takarítva meg erőforrásokat és időt. A pontos szintaxis és funkciók a konkrét CI/CD rendszer függvényei.