Middle
Kuidas määrata pipeline'i käivitamise parameetreid teatud ressursside redigeerimisel Git'is?
sobes.tech AI
Vastus AI-lt
Kasutades CI/CD triggereid, mis on seotud konkreetsete failide või kataloogide muudatustega.
Näiteks GitLab CI:
# .gitlab-ci.yml
etapid:
- build
- test
build_job:
etapp: build
skript:
- echo "Rakenduse ehitamine..."
# Käivita ainult siis, kui muudatused on tehtud kataloogis app/
only:
changes:
- app/**/*
test_job:
etapp: test
skript:
- echo "Testide käivitamine..."
# Käivita ainult siis, kui muudatused on tehtud kataloogis test/
only:
changes:
- test/**/*
Jenkinsfile Maveniga ja triggers direktiiviga:
// Jenkinsfile (Deklaratiivne pipeline)
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Ehitan...'
}
}
stage('Test') {
steps {
echo 'Testin...'
}
}
}
// Käivita, kui on tehtud muudatusi konkreetses kataloogis (nõutav SCM API ja Job DSL plugin)
triggers {
pollSCM('H * * * *') // Iga minut
}
options {
skipChanges() // Jäta trigerid vahele, kui muudatusi pole
}
}
GitHub Actions kasutades:
# .github/workflows/ci.yml
nimi: CI Pipeline
on:
push:
# Käivita, kui on tehtud muudatusi kindlates teedes
paths:
- 'src/**'
- 'tests/**'
- '!docs/**' # Ignoreeri muudatusi kataloogis docs/
tööd:
build-and-test:
runs-on: ubuntu-latest
steps:
- name: Koodi kontrollimine
uses: actions/checkout@v3
- name: Ehita
run: echo "Ehitan..."
- name: Testi
run: echo "Testin..."
See võimaldab käivitada ainult vajalikud pipeline osad või kogu pipeline tervikuna, säästes arvutusressursse ja aega. Täpne süntaks ja võimalused sõltuvad konkreetsest CI/CD süsteemist.