Sobes.tech
Middle

Kuidas määrata pipeline'i käivitamise parameetreid teatud ressursside redigeerimisel Git'is?

sobes.tech AI

Vastus AI-lt

Kasutades CI/CD triggereid, mis on seotud konkreetsete failide või kataloogide muudatustega.

Näiteks GitLab CI:

# .gitlab-ci.yml

etapid:
  - build
  - test

build_job:
  etapp: build
  skript:
    - echo "Rakenduse ehitamine..."
  # Käivita ainult siis, kui muudatused on tehtud kataloogis app/
  only:
    changes:
      - app/**/*

test_job:
  etapp: test
  skript:
    - echo "Testide käivitamine..."
  # Käivita ainult siis, kui muudatused on tehtud kataloogis test/
  only:
    changes:
      - test/**/*

Jenkinsfile Maveniga ja triggers direktiiviga:

// Jenkinsfile (Deklaratiivne pipeline)

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                echo 'Ehitan...'
            }
        }
        stage('Test') {
            steps {
                echo 'Testin...'
            }
        }
    }
    // Käivita, kui on tehtud muudatusi konkreetses kataloogis (nõutav SCM API ja Job DSL plugin)
    triggers {
        pollSCM('H * * * *') // Iga minut
    }
    options {
        skipChanges() // Jäta trigerid vahele, kui muudatusi pole
    }
}

GitHub Actions kasutades:

# .github/workflows/ci.yml

nimi: CI Pipeline

on:
  push:
    # Käivita, kui on tehtud muudatusi kindlates teedes
    paths:
      - 'src/**'
      - 'tests/**'
      - '!docs/**' # Ignoreeri muudatusi kataloogis docs/

tööd:
  build-and-test:
    runs-on: ubuntu-latest
    steps:
      - name: Koodi kontrollimine
        uses: actions/checkout@v3
      - name: Ehita
        run: echo "Ehitan..."
      - name: Testi
        run: echo "Testin..."

See võimaldab käivitada ainult vajalikud pipeline osad või kogu pipeline tervikuna, säästes arvutusressursse ja aega. Täpne süntaks ja võimalused sõltuvad konkreetsest CI/CD süsteemist.