Middle
Git'da ma'lum resurslarni tahrirlashda pipeline ishga tushirish parametrlarini qanday aniqlash mumkin?
sobes.tech AI
AIdan javob
Ma'lum bir fayl yoki katalogdagi o'zgarishlarga bog'liq CI/CD triggerlardan foydalaning.
Masalan, GitLab CI da:
# .gitlab-ci.yml
stages:
- build
- test
build_job:
stage: build
script:
- echo "Ilovani qurish..."
# Faqat app/ katalogida o'zgarishlar bo'lsa ishga tushirilsin
only:
changes:
- app/**/*
test_job:
stage: test
script:
- echo "Testlarni o'tkazish..."
# Faqat test/ katalogida o'zgarishlar bo'lsa ishga tushirilsin
only:
changes:
- test/**/*
Maven Jenkinsfile da triggers direktivasidan foydalanish:
// Jenkinsfile (Deklarativ Pipeline)
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Qurilmoqda...'
}
}
stage('Test') {
steps {
echo 'Test o'tkazilmoqda...'
}
}
}
// Muayyan katalogdagi o'zgarishlar uchun ishga tushirish (SCM API va Job DSL plaginini talab qiladi)
// Git uchun misol, Poll SCM trigger bilan
triggers {
pollSCM('H * * * *') // Har daqiqada tekshirish
}
options {
skipChanges() // O'zgarishlar bo'lmasa triggerni o'tkazib yuborish
}
}
GitHub Actions dan foydalanishda:
# .github/workflows/ci.yml
name: CI Pipeline
on:
push:
# Muayyan yo'llardagi o'zgarishlar uchun ishga tushiradi
paths:
- 'src/**'
- 'tests/**'
- '!docs/**' # docs/ katalogidagi o'zgarishlarni inkor etish
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- name: Kodni tekshirish
uses: actions/checkout@v3
- name: Qurish
run: echo "Qurilmoqda..."
- name: Test
run: echo "Test o'tkazilmoqda..."
Bu faqat kerakli bo'laklarni yoki butun pipeline'ni ishga tushirish imkonini beradi, bu esa hisoblash resurslari va vaqtni tejashga yordam beradi. Aniq sintaksis va imkoniyatlar CI/CD tizimiga bog'liq.