https://hihellloitland.tistory.com/65
https://docs.gitlab.com/runner/register/
GitLab Runner는 특정 작업을 수행하고 다시 GitLab에 결과를 보내는데 사용되는 오픈소스 프로젝트이다.
버전확인
기본적으로 Runner와 GitLab버전과 동기화를 시켜야한다. 구형 Runner의 경우 신버전의 GitLab에서 동작할 수 있지만, 반대의 경우는 안되는 경우가 있다 → 버전 체크는 필수!
Ruuner 등록
등록을 하기에 앞서서 해당 레포지토리의 권한이 maintainer인지 확인을 하자 → 그렇지 않은 경우 settings옵션을 볼 수 없다.
위처럼 settings의 CI/CD로 들어가서 Runners에 expands를 클릭한다.
위와 같이 specific runners에 대한 정보가 runner를 등록하기 위한 정보이다.
서버에 runner 설치
gitlab-runner:
image: gitlab/gitlab-runner:latest
restart: always
volumes:
- /srv/gitlab-runner/config:/etc/gitlab-runner
- /var/run/docker.sock:/var/run/docker.sock
위와 같은 docker-compose.yml을 만들어서 실행하도록한다.
→ runner를 위한 서버를 컨테이너 환경에서 구동하는 것이다.
container에 runner 등록(register runner)
container의 터미널 환경으로 들어가서 다음과 같은 명령어를 입력한다.
gitlab-runner register -n \\
--url <url> \\
--registration-token <token> \\
--description gitlab-runner \\
--executor docker \\
--docker-image docker:latest \\
--docker-volumes /var/run/docker.sock:/var/run/docker.sock
위의 첨부된 사진의 내용을 참고하여 위의 커맨드를 완성한다.
→ 여기까지가 runner 등록이 끝!
GitLab에서 CI환경을 구축하기 위해서는 .gitlab-ci.yml
파일을 만들어야 한다. .gitlab-ci.yml
의 파일을 읽고 Runner가 우리가 원하는 CI 동작을 하게된다.
위의 구조처럼 CI 환경에서의 동작이 진행된다. 하지만 위의 그림을 보아도 몇가지 의문이 들었다.
repository와의 연동을 어떻게 이뤄지는가?
내가 생각했던 경로와는 전혀 상관이 없었다.
CI 관련 명령이 실행되는 환경의 정확한 위치?
세팅을 어떻게 해야하고 git repository를 어떻게 불러오는가?
위의 내용을 보게되면 Runner가 레포지토리의 내용을 fetch하게된다. 즉, 레포지토리의 프로젝트 홈이 CI가 실행되는 기본 위치가 된다.
결과
파이프라인의 결과는 위처럼 확인할 수 있다.
위의 표시처럼 커밋에 대한 테스팅이 완료된 모습이다.