2017-03-16 3 views
0

gitlab-runner 컴퓨터가있는 gitlab에 A, B, C 프로젝트가 세 개 있습니다.커밋이 다른 프로젝트에 푸시 될 때 프로젝트에서 빌드 트리거

build: 
    stage: build 
    script: 
    - ./build-platform.sh 

A는 B와 C 프로젝트에 따라 달라집니다 : 프로젝트 A는 A가 커밋이있을 때 프로그램을 빌드하는 스크립트를 호출 gitlab-ci.yml 파일이 포함되어 있습니다. B 또는 C에 커밋이있을 때 A에서 빌드를 트리거하려면 어떻게해야합니까? B, C를 A에 넣을 수 없으며 build-platform.sh를 gitlab-ci.yml 파일 구문으로 쉽게 변환 할 수 없습니다.

답변

4

원하는 작업을 수행하는 데는 몇 가지 방법이 있지만 모두 gitlab에서 A의 설정을 투영하고 트리거 토큰을 추가 할 것입니다. 이 작업은 페이지의 Add trigger트리거 섹션에서 클릭하여 수행 할 수 있습니다.

해당 페이지에서 해당 트리거 토큰을 사용하는 다른 방법을 찾을 수도 있습니다. 당신이 프로젝트 B 또는 C의 빌드의 끝 부분에 컬을 사용할 수있는 경우

는 단순히 컬을 추가하여

1 다음 : 완성도를 위해서

여기가 언급 한 방법 중 몇 가지입니다 : 토큰이 그냥 프로젝트 A와 REF_NAME에 대해 생성 된 트리거 토큰

curl -X POST \ 
    -F token=TOKEN \ 
    -F ref=REF_NAME \ 
    <gitlab_url>/api/v3/projects/1/trigger/builds 

은에 대한 빌드를 실행하는 지점 또는 태그의 이름입니다.

프로젝트 B 및 C (예 : .gitlab-ci.yml 파일 사용)에 대한 자동 빌드가있는 경우이 작업을 수행 할 수 있습니다. 당신은 그 프로젝트의 설정/통합 페이지를 통해 프로젝트 B와 C에은 webhook를 추가 할 수 있습니다으로 webhook

를 사용

2.

는 간단히 푸시 이벤트에서 다음으로 webhook을 추가

<gitlab_url>/api/v3/projects/1/ref/REF_NAME/trigger/builds?token=TOKEN 

하는 토큰과 REF_NAME은 상기와 동일 곳.