>

프로젝트 변수에 따라 필요한 gitlab-ci 파일이 포함 된 동적 gitlab-ci 파일을 설정하려고합니다.

안타깝게도 제대로 작동하지 않는 것 같습니다. 설명서를 읽고 포럼을 검색했지만 안타깝게도 해결책을 찾을 수 없습니다.

동적 gitlab-ci 파일을 어떻게 얻습니까?

실제로 아래 스 니펫과 같은 작업을 원했지만 파일 메서드에서 변수를 사용할 수 없다는 것을 알았습니다 ( "잘못된 구성 : 파일이 없습니다"를 반환 함).

include:
  - project: 'tools/gitlab-ci'
    file: '/gitlab-ci-$GITLABFILE.yml'
    only:
      - $GITLABFILE
include:
  - project: 'tools/gitlab-ci'
    file: '/gitlab-ci.yml'
    only:
      - $GITLABFILE == null

파일 방법에서 변수를 사용할 수 없으므로 아래 구성을 시도했지만 불행히도 항상 마지막 파일을로드하고 유일한 키워드를 무시합니다.

include:
  - project: 'tools/gitlab-ci'
    file: '/gitlab-ci.yml'
    except:
      variables:
        - $GITLABFILE
  - project: 'tools/gitlab-ci'
    file: '/gitlab-ci-legacy.yml'
    only:
      variables:
        - $GITLABFILE == 'legacy'
  - project: 'tools/gitlab-ci'
    file: '/gitlab-ci-legacy-nobuild.yml'
    only:
      variables:
        - $GITLABFILE == 'legacy-nobuild'

변수에 따라 다른 gitlab-ci 파일을 검색 할 수있는 단일 gitlab-ci 파일이 필요합니다.

다른 사람이 나를 도와 주거나 올바른 방향으로 나를 가리킬 수 있기를 바랍니다.

  • 답변 # 1

    이 개별 gitlab-ci 파일에 조건부 논리를 넣지 않고 모두 포함시키는 이유는 무엇입니까?

    주요 파일에서 이와 같은 것 :

    variables:
      GITLABFILE: legacy
    include:
      - project: 'tools/gitlab-ci'
        file: '/gitlab-ci.yml'
      - project: 'tools/gitlab-ci'
        file: '/gitlab-ci-legacy.yml'
      - project: 'tools/gitlab-ci'
        file: '/gitlab-ci-legacy-nobuild.yml'
    
    
    

    그런 다음 각 하위 파일에서-예를 들어 와이즈 비즈 :

    gitlab-ci-legacy.yml
    
    

    더보기 : https://docs.gitlab.com/ee/ci/yaml/#onlyvariablesexceptvariables

    job: script: - echo Do something only: variables: - $GITLABFILE == "legacy"

  • 이전 xcode4.2 - Objective-c, Hello World를 처음 사용합니다
  • 다음 javascript - 모달 부트 스트랩에서 kendoDatePicker가 비활성화 된 이유