Sobes.tech
Middle

Cum se determină parametrii de inițiere ai pipeline-ului la editarea anumitor resurse în Git?

sobes.tech AI

Răspuns de la AI

Utilizați declanșatoare CI/CD legate de modificări în fișiere sau directoare specifice.

De exemplu, în GitLab CI:

# .gitlab-ci.yml

stages:
  - build
  - test

build_job:
  stage: build
  script:
    - echo "Construirea aplicației..."
  # Se rulează doar dacă există modificări în directorul app/
  only:
    changes:
      - app/**/*

test_job:
  stage: test
  script:
    - echo "Executarea testelor..."
  # Se rulează doar dacă există modificări în directorul test/
  only:
    changes:
      - test/**/*

Maven în Jenkinsfile folosind directiva triggers:

// Jenkinsfile (Pipeline Declarativ)

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                echo 'Construire...'
            }
        }
        stage('Test') {
            steps {
                echo 'Testare...'
            }
        }
    }
    // Se declanșează la modificări într-un director specific (necesită plugin SCM API și Job DSL)
    // Exemplu pentru Git cu trigger Poll SCM
    triggers {
        pollSCM('H * * * *') // Verifică la fiecare minut
    }
    options {
        skipChanges() // Sare peste trigger dacă nu există modificări
    }
}

Când folosiți GitHub Actions:

# .github/workflows/ci.yml

name: Pipeline CI

on:
  push:
    # Se pornește la modificări în anumite căi
    paths:
      - 'src/**'
      - 'tests/**'
      - '!docs/**' # Ignoră modificările din directorul docs/

jobs:
  build-and-test:
    runs-on: ubuntu-latest
    steps:
      - name: Verifică codul
        uses: actions/checkout@v3
      - name: Construiește
        run: echo "Construire..."
      - name: Testează
        run: echo "Testare..."

Aceasta permite rularea doar a părților necesare ale pipeline-ului sau a întregului pipeline, economisind resurse de calcul și timp. Sintaxa exactă și funcționalitățile depind de sistemul CI/CD specific.