Sobes.tech
Middle

Kā noteikt pipeline palaišanas parametrus, rediģējot noteiktus resursus Git?

sobes.tech AI

Atbilde no AI

Izmantojot CI/CD trigerus, kas saistīti ar konkrētu failu vai direktoriju izmaiņām.

Piemēram, GitLab CI:

# .gitlab-ci.yml

posmi:
  - būvniecība
  - tests

būvniecības_darbs:
  posms: būvniecība
  skripts:
    - echo "Būvējam lietojumprogrammu..."
  # Palaist tikai, ja ir izmaiņas direktorijā app/
  only:
    changes:
      - app/**/*

testēšanas_darbs:
  posms: tests
  skripts:
    - echo "Veicam testus..."
  # Palaist tikai, ja ir izmaiņas direktorijā test/
  only:
    changes:
      - test/**/*

Jenkinsfile ar Maven un triggers direktīvu:

// Jenkinsfile (Deklaratīvais pīpeļains)

pipeline {
    agent any
    stages {
        stage('Būvniecība') {
            steps {
                echo 'Būvē...'
            }
        }
        stage('Tests') {
            steps {
                echo 'Testē...'
            }
        }
    }
    // Palaist, ja ir izmaiņas konkrētā direktorijā (prasīts SCM API un Job DSL spraudnis)
    triggers {
        pollSCM('H * * * *') // Katru minūti
    }
    options {
        skipChanges() // Izlaist trigerus, ja nav izmaiņu
    }
}

Ar GitHub Actions:

# .github/workflows/ci.yml

nosaukums: CI Pīpeļains

on:
  push:
    # Palaist, ja ir izmaiņas konkrētās ceļos
    paths:
      - 'src/**'
      - 'tests/**'
      - '!docs/**' # Ignorēt izmaiņas direktorijā docs/

darbi:
  būvniecība-un-testi:
    runs-on: ubuntu-latest
    steps:
      - name: Kods pārbaude
        uses: actions/checkout@v3
      - name: Būvēt
        run: echo "Būvē..."
      - name: Testēt
        run: echo "Testē..."

Tas ļauj palaist tikai nepieciešamās pipeline daļas vai visu pipeline pilnībā, taupot skaitļošanas resursus un laiku. Precīza sintakse un iespējas ir atkarīgas no konkrētās CI/CD sistēmas.