Middle
როგორ განვსაზღვროთ პაიპლაინის დაწყების პარამეტრები Git-ში გარკვეული რესურსების რედაქტირებისას?
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 (დეკლარაციული პაიპლაინი)
პაიპლაინი {
აგენტი ნებისმიერი
საფეხურები {
საფეხური('მშენებლობა') {
ნაბიჯები {
echo 'მშენებლობა...'
}
}
საფეხური('ტესტი') {
ნაბიჯები {
echo 'ტესტირება...'
}
}
}
// გაშვება კონკრეტული დირექტორიის ცვლილებისას (საჭიროა SCM API და Job DSL პლაგინები)
triggers {
pollSCM('H * * * *') // ყოველ წუთში გამოკითხვა
}
ვარიანტები {
skipChanges() // თუ ცვლილებები არ არის, ტრიგერები გამოტოვე
}
}
GitHub Actions-ის გამოყენებით:
# .github/workflows/ci.yml
სახელი: CI პაიპლაინი
მოწყობა:
push:
# გაშვება კონკრეტული გზების ცვლილებისას
paths:
- 'src/**'
- 'tests/**'
- '!docs/**' # იგნორირება docs/ დირექტორიაში ცვლილებების
სამუშაოები:
მშენებლობა-და-ტესტი:
მუშაობს-ზოლაზე: ubuntu-latest
ნაბიჯები:
- სახელი: კოდის გადამოწმება
გამოიყენება: actions/checkout@v3
- სახელი: მშენებლობა
გაშვება: echo "მშენებლობა..."
- სახელი: ტესტი
გაშვება: echo "ტესტირება..."
ეს საშუალებას აძლევს გაშვათ მხოლოდ საჭირო ნაწილები პაიპლაინის ან მთელი პაიპლაინის სრული გაშვება, რაც ხარჯავს გამოთვლით რესურსებს და დროს. ზუსტი სინტაქსი და შესაძლებლობები დამოკიდებულია კონკრეტულ CI/CD სისტემაზე.