Sobes.tech
Middle

Kako podesiti pokretanje posla u GitLab-u pritiskom na dugme?

sobes.tech АИ

Одговор од АИ

За подешавање ручног покретања посла у GitLab CI/CD користи се кључна реч when: manual у опису посла у датотеци .gitlab-ci.yml.

Пример:

stages:
  - build
  - deploy

build_job:
  stage: build
  script:
    - echo "Building the project..."
    # Команде за изградњу

deploy_staging:
  stage: deploy
  script:
    - echo "Deploying to staging..."
  when: manual # Овај посао треба да се покрене ручно
  allow_failure: false # По подразумевану вредност је false, али јасно ћемо је назначити

Објашњење:

  • when: manual: Ово указује GitLab-у да овај посао аутоматски неће бити покренут приликом промене кода (commit) или по распореду. Он ће чекати да га ручно покрене корисник преко интерфејса GitLab-а.
  • allow_failure: false: Одређује да ли даљи послови (ако их има) буду извршени ако овај ручни посао заврши неуспешно. Ако је постављено на false (подразумевано), пайплайн ће се зауставити у случају неуспеха овог посла. Ако се постави на true, пайплайн ће наставити са извршењем чак и ако овај посао не успе.

Након додавања и комитовања такве .gitlab-ci.yml датотеке, у интерфејсу пайплина у GitLab-у (CI/CD -> Pipelines) поред посла deploy_staging појавиће се дугме за покретање („Run“) или његов статус ће бити приказан као „Manual“. Када кликнете на то дугме, покреће се овај посао.

Такође можете укључити ручне послове у фазе које аутоматски покрећу друге послове. На пример:

stages:
  - build
  - test
  - deploy

build_job:
  stage: build
  script:
    - echo "Building..."

test_job:
  stage: test
  needs: [build_job]
  script:
    - echo "Testing..."

deploy_production:
  stage: deploy
  needs: [test_job]
  script:
    - echo "Deploying to production..."
  when: manual # Само након успешног тестирања, и тада ручно
  variables:
    TARGET_ENVIRONMENT: "production" # Пример: пренос променљивих за ручни посао

Овде ће посао deploy_production бити доступан за ручно покретање само након успешног завршетка посла test_job.

Додатно:

  • variables: Ручни послови могу користити променљиве дефинисане како у датотеци .gitlab-ci.yml, тако и у подешавањима пројекта/групе.
  • rules: Компликованији сценарији покретања могу користити кључну реч rules заједно са when: manual за одређивање услова под којима ручни посао постаје доступан или обавезан.
  • API: Ручни послови такође могу бити покренути преко GitLab CI/CD API-ја.

Дакле, when: manual је основни механизам за имплементацију ручног покретања послова у GitLab-у.