Middle
Как да определите параметрите за стартиране на пайплайна при редактиране на определени ресурси в Git?
sobes.tech AI
Отговор от AI
Използвайте тригери 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() // Пропуска тригерите, ако няма промени
}
}
При използване на 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: Checkout code
uses: actions/checkout@v3
- name: Build
run: echo "Изграждане..."
- name: Test
run: echo "Тестване..."
Това позволява да се стартират само необходимите части от pipeline или цялата pipeline, като се спестяват изчислителни ресурси и време. Точният синтаксис и възможностите зависят от конкретната система CI/CD.