Middle
Gitте белгилүү ресурстарды түзүүдө pipeline'дын ишке кирүү параметрлерин кантип аныктоо керек?
sobes.tech AI
AIден жооп
CI/CD триггерлерин колдонуп, белгилүү файлдарга же директорийлерге өзгөртүүлөр менен байланыштуу.
Мисалы, GitLab CI:
# .gitlab-ci.yml
стадийлер:
- куруу
- тест
build_job:
стадия: куруу
скрипт:
- echo "Курулуш колдонмосу..."
# Тек гана app/ директорийинде өзгөрүүлөр болсо иштетүү
only:
changes:
- app/**/*
test_job:
стадия: тест
скрипт:
- echo "Тестирлөө..."
# Тек гана test/ директорийинде өзгөрүүлөр болсо иштетүү
only:
changes:
- test/**/*
Jenkinsfile ичинде Maven жана triggers директивасы менен:
// Jenkinsfile (Декларативдүү Pipeline)
pipeline {
агент any
стадийлер {
стадия('Куруу') {
кадамдар {
echo 'Курулуш...'
}
}
стадия('Тест') {
кадамдар {
echo 'Тестирлөө...'
}
}
}
// Өзгөрүүлөргө байланыштуу иштетүү (SCM API жана Job DSL плагиндери талап кылынат)
trigger {
pollSCM('H * * * *') // Ар бир мүнөт сайын сурап алуу
}
options {
skipChanges() // Өзгөрүүлөр болбосо триггерлерди өткөрүп жиберүү
}
}
GitHub Actions колдонууда:
# .github/workflows/ci.yml
аты: CI Pipeline
өткөрүү:
push:
# Тек гана белгилүү жолдордо өзгөрүүлөр болсо иштетүү
paths:
- 'src/**'
- 'tests/**'
- '!docs/**' # docs/ директорийиндеги өзгөрүүлөрдү көзөмөлдөбө
иштер:
куруу-жана-тест:
иштетүүчү: ubuntu-latest
кадамдар:
- аты: Кодду текшерүү
колдонуу: actions/checkout@v3
- аты: Куруу
иштетүү: echo "Курулуш..."
- аты: Тест
иштетүү: echo "Тестирлөө..."
Бул пайплайндын керектүү бөлүктөрүн гана иштетүүгө же бүт пайплайнды толугу менен иштетүүгө мүмкүндүк берет, бул эсептөө ресурстары жана убакытты үнөмдөйт. Точкалык синтаксис жана мүмкүнчүлүктөр конкреттүү CI/CD системасына жараша өзгөрөт.