Sobes.tech
Middle

Ako určiť parametre spustenia pipeline pri úprave určitých zdrojov v Git?

sobes.tech AI

Odpoveď od AI

Použite spúšťače CI/CD viazané na zmeny v konkrétnych súboroch alebo adresároch.

Napríklad v GitLab CI:

# .gitlab-ci.yml

stages:
  - build
  - test

build_job:
  stage: build
  script:
    - echo "Stavba aplikácie..."
  # Spustí sa iba pri zmenách v adresári app/
  only:
    changes:
      - app/**/*

test_job:
  stage: test
  script:
    - echo "Spúšťanie testov..."
  # Spustí sa iba pri zmenách v adresári test/
  only:
    changes:
      - test/**/*

Maven v Jenkinsfile s použitím direktívy triggers:

// Jenkinsfile (Deklaratívny pipeline)

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                echo 'Stavba...'
            }
        }
        stage('Test') {
            steps {
                echo 'Testovanie...'
            }
        }
    }
    // Spustí sa pri zmenách v konkrétnom adresári (vyžaduje plugin SCM API a Job DSL)
    // Príklad pre Git s triggerom Poll SCM
    triggers {
        pollSCM('H * * * *') // Kontroluje každú minútu
    }
    options {
        skipChanges() // Preskočí trigger, ak nie sú zmeny
    }
}

Použitím GitHub Actions:

# .github/workflows/ci.yml

name: CI Pipeline

on:
  push:
    # Spustí pri zmenách v určitých cestách
    paths:
      - 'src/**'
      - 'tests/**'
      - '!docs/**' # Ignoruje zmeny v adresári docs/

jobs:
  build-and-test:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout kódu
        uses: actions/checkout@v3
      - name: Build
        run: echo "Stavba..."
      - name: Testovanie
        run: echo "Testovanie..."

Toto umožňuje spúšťať iba potrebné časti pipeline alebo celý pipeline, šetrí výpočtové zdroje a čas. Presná syntax a možnosti závisia od konkrétneho systému CI/CD.