Middle
Πώς να καθορίσετε τις παραμέτρους εκκίνησης του pipeline κατά την επεξεργασία ορισμένων πόρων στο Git;
sobes.tech AI
Απάντηση από AI
Χρησιμοποιήστε triggers CI/CD που συνδέονται με αλλαγές σε συγκεκριμένα αρχεία ή καταλόγους.
Για παράδειγμα, στο GitLab CI:
# .gitlab-ci.yml
stages:
- build
- test
build_job:
stage: build
script:
- echo "Χτίζοντας την εφαρμογή..."
# Εκτελείται μόνο όταν αλλάζουν αρχεία στον κατάλογο app/
only:
changes:
- app/**/*
test_job:
stage: test
script:
- echo "Τρέχοντας δοκιμές..."
# Εκτελείται μόνο όταν αλλάζουν αρχεία στον κατάλογο test/
only:
changes:
- test/**/*
Maven στο Jenkinsfile με τη χρήση της οδηγίας triggers:
// Jenkinsfile (Δηλωτικό Pipeline)
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Χτίζοντας...'
}
}
stage('Test') {
steps {
echo 'Δοκιμές...'
}
}
}
// Εκκίνηση όταν αλλάζουν αρχεία σε συγκεκριμένο φάκελο (απαιτείται το plugin SCM API και Job DSL)
// Παράδειγμα για Git με trigger Poll SCM
triggers {
pollSCM('H * * * *') // Κάθε λεπτό
}
options {
skipChanges() // Παραλείπει triggers αν δεν υπάρχουν αλλαγές
}
}
Χρησιμοποιώντας το GitHub Actions:
# .github/workflows/ci.yml
name: CI Pipeline
on:
push:
# Εκκινεί όταν γίνονται αλλαγές σε συγκεκριμένες διαδρομές
paths:
- 'src/**'
- 'tests/**'
- '!docs/**' # Αγνοεί αλλαγές στον κατάλογο docs/
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- name: Εξαγωγή κώδικα
uses: actions/checkout@v3
- name: Κατασκευή
run: echo "Χτίσιμο..."
- name: Δοκιμές
run: echo "Δοκιμές..."
Αυτό επιτρέπει την εκτέλεση μόνο των απαραίτητων τμημάτων του pipeline ή ολόκληρου του pipeline, εξοικονομώντας πόρους και χρόνο. Η ακριβής σύνταξη και οι δυνατότητες εξαρτώνται από το συγκεκριμένο σύστημα CI/CD.