Sobes.tech
Middle

Gitте белгилүү ресурстарды түзүүдө pipeline'дын ишке кирүү параметрлерин кантип аныктоо керек?

sobes.tech AI

AIден жооп

CI/CD триггерлерин колдонуп, белгилүү файлдарга же директорийлерге өзгөртүүлөр менен байланыштуу.

Мисалы, GitLab CI:

# .gitlab-ci.yml

стадийлер:
  - куруу
  - тест

build_job:
  стадия: куруу
  скрипт:
    - echo "Курулуш колдонмосу..."
  # Тек гана app/ директорийинде өзгөрүүлөр болсо иштетүү
  only:
    changes:
      - app/**/*

test_job:
  стадия: тест
  скрипт:
    - echo "Тестирлөө..."
  # Тек гана test/ директорийинде өзгөрүүлөр болсо иштетүү
  only:
    changes:
      - test/**/*

Jenkinsfile ичинде Maven жана triggers директивасы менен:

// Jenkinsfile (Декларативдүү Pipeline)

pipeline {
    агент any
    стадийлер {
        стадия('Куруу') {
            кадамдар {
                echo 'Курулуш...'
            }
        }
        стадия('Тест') {
            кадамдар {
                echo 'Тестирлөө...'
            }
        }
    }
    // Өзгөрүүлөргө байланыштуу иштетүү (SCM API жана Job DSL плагиндери талап кылынат)
    trigger {
        pollSCM('H * * * *') // Ар бир мүнөт сайын сурап алуу
    }
    options {
        skipChanges() // Өзгөрүүлөр болбосо триггерлерди өткөрүп жиберүү
    }
}

GitHub Actions колдонууда:

# .github/workflows/ci.yml

аты: CI Pipeline

өткөрүү:
  push:
    # Тек гана белгилүү жолдордо өзгөрүүлөр болсо иштетүү
    paths:
      - 'src/**'
      - 'tests/**'
      - '!docs/**' # docs/ директорийиндеги өзгөрүүлөрдү көзөмөлдөбө

иштер:
  куруу-жана-тест:
    иштетүүчү: ubuntu-latest
    кадамдар:
      - аты: Кодду текшерүү
        колдонуу: actions/checkout@v3
      - аты: Куруу
        иштетүү: echo "Курулуш..."
      - аты: Тест
        иштетүү: echo "Тестирлөө..."

Бул пайплайндын керектүү бөлүктөрүн гана иштетүүгө же бүт пайплайнды толугу менен иштетүүгө мүмкүндүк берет, бул эсептөө ресурстары жана убакытты үнөмдөйт. Точкалык синтаксис жана мүмкүнчүлүктөр конкреттүү CI/CD системасына жараша өзгөрөт.