0

I'm using a gitlab runner to deploy application -shared gitlab runner and concurrent count is 4

/etc/gitlab-runner/config.toml
        concurrent = 4
        check_interval = 0
        executor = shell

All jobs run in a different stage each other.

.gitlab-ci.yml

stages:
  - build-prod-stage
  - deploy-prod-stage

BUILD_PROD_JOB:
  stage: build-prod-stage
  variables:    
    GIT_CLEAN_FLAGS: none      
  script:
    - xxxxxx
    - xxxxx

DEPLOY_PROD_JOB:
  variables:
    GIT_CLEAN_FLAGS: none 
  stage: deploy-prod-stage
  script: 
    - xxxxxx
    - xxxxxx*

Mostly, BUILD_PROD_JOB and DEPLOY_PROD_JOB run in a same build directory. But, sometimes they use a different directory each other

gitlab-runner log

BUILD_PROD_JOB Fetching changes with git depth set to 50... Initialized empty Git repository in /xxxx/gitlab-runner/builds/(gitlab-runner name)/1/(respository name)/.git/ .....

DEPLOY_PROD_JOB Fetching changes with git depth set to 50... Initialized empty Git repository in /xxxx/gitlab-runner/builds/(gitlab-runner name)/0/(respository name)/.git/ ....

I guessed why this things happen.

  • BUILD_PROD_JOB started to run while other job is running. so, CI_CONCURRENT_ID is 1
  • DEPLOY_PROD_JOB started to run after other jobs is completed, so CI_CONCURRENT_ID is 0

In this case, can I force "DEPLO_PROD_JOB" runs in same build_dir of "BUILD_PROD_JOB"?

  • BUILD_PRODJOB --> /xxxx/gitlab-runner/builds/(gitlab-runner name)/1/(respository name)/.git/
  • DEPLOY_PRODJOB --> /xxxx/gitlab-runner/builds/(gitlab-runner name)/1/(respository name)/.git/
lee
  • 1

1 Answers1

0

You'll need to use artifacts and dependencies to pass data between jobs:

stages:
  - build-prod-stage
  - deploy-prod-stage

BUILD_PROD_JOB:
  stage: build-prod-stage
  variables:    
    GIT_CLEAN_FLAGS: none      
  script:
    - xxxxxx
    - xxxxx
  artifacts:
    paths:
    - path-to-the-folder-you-want-to-share-between-jobs

DEPLOY_PROD_JOB:
  variables:
    GIT_CLEAN_FLAGS: none 
  stage: deploy-prod-stage
  script: 
    - xxxxxx
    - xxxxxx*
  needs:
    - job: BUILD_PROD_JOB
      artifacts: true
jbleonesio
  • 126
  • 2