Sobes.tech
Middle

Hogyan határozhatók meg a pipeline indítási paraméterei bizonyos erőforrások szerkesztésekor Git-ben?

sobes.tech MI

Válasz az MI-től

Használjon CI/CD indítókat, amelyek egy adott fájl vagy könyvtár változásaihoz vannak kötve.

Például GitLab CI-ben:

# .gitlab-ci.yml

stages:
  - build
  - test

build_job:
  stage: build
  script:
    - echo "Alkalmazás építése..."
  # Csak akkor fusson, ha az app/ könyvtárban változás történt
  only:
    changes:
      - app/**/*

test_job:
  stage: test
  script:
    - echo "Tesztelés..."
  # Csak akkor fusson, ha a test/ könyvtárban változás történt
  only:
    changes:
      - test/**/*

Maven Jenkinsfile-ben a triggers direktívával:

// Jenkinsfile (Deklaratív Pipeline)

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                echo 'Építés...'
            }
        }
        stage('Test') {
            steps {
                echo 'Tesztelés...'
            }
        }
    }
    // Indítás, ha egy adott könyvtárban változás történt (szükséges SCM API és Job DSL plugin)
    // Példa Git esetén, Poll SCM triggerrel
    triggers {
        pollSCM('H * * * *') // Minden percben ellenőriz
    }
    options {
        skipChanges() // Átugorja a trigger-t, ha nincs változás
    }
}

GitHub Actions használatával:

# .github/workflows/ci.yml

name: CI Pipeline

on:
  push:
    # Indít, ha változás történt bizonyos útvonalakon
    paths:
      - 'src/**'
      - 'tests/**'
      - '!docs/**' # A docs/ könyvtár változásait figyelmen kívül hagyja

jobs:
  build-and-test:
    runs-on: ubuntu-latest
    steps:
      - name: Kód ellenőrzése
        uses: actions/checkout@v3
      - name: Építés
        run: echo "Építés..."
      - name: Tesztelés
        run: echo "Tesztelés..."

Ez lehetővé teszi, hogy csak a pipeline szükséges részeit vagy az egész pipeline-t futtassa, így takarítva meg erőforrásokat és időt. A pontos szintaxis és funkciók a konkrét CI/CD rendszer függvényei.