오늘도 한 뼘 더
[Git] gitlab-ci.yaml을 사용하여 테스트 코드 돌리기 본문
728x90
반응형
# 배경
개발자가 작성한 테스트 코드를 돌리고 나서 결과에 따라서 GitLab에서 바로 Merge가 되지 않았으면 한다는 요구 조건이 있었다.
이전에 테스트 코드 실행은 GitLab에서 Merge Request가 열리면 Webhook을 통해서 Jenkins에서 테스트 코드가 실행되었다. 위의 요구 조건을 실행하기 위해서 GitLab의 CI/CD 툴을 사용하기로 하였다.
# .gitlab-ci.yaml
gitlab ci/cd의 경우 레포지토리에 .gitlab-ci.yaml 파일을 포함하고 있으면 자동으로 pipeline이 실행이 된다.
- gitlab repository > Settings > CI/CD에 들어가면 변수 세팅을 할 수 있다.
- 변수를 세팅할 때 Protected로 변수를 설정할 경우 Protected 브랜치에서만 사용이 가능하다.
- before_script : 메인 스크립트를 실행하기 전에 선행되어야 하는 작업을 작성한다.
- stages : pipeline이 실행될 메인 작업 공간들을 작성한다.
- except : 해당 작업을 수행하지 않을 브랜치를 지정할 수 있다.
[ 예시 ]
variables:
ENV: test
before_script:
- export PATH=$PATH:/usr/local/go/bin
- curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env PATH)/bin v1.53.1
stages:
- test
test:golangci-lint:
image: golangci/golangci-lint:latest
stage: test
except:
- main
script:
- echo "start golangci-lint"
- cd $CI_PROJECT_DIR
- golangci-lint run
test:tests:
image: golang:1.19
stage: test
except:
- main
script:
- echo "start test"
- cd $CI_PROJECT_DIR
- go test -v ./...
728x90
반응형
'Study > Git' 카테고리의 다른 글
[Git] Error : fatal: detected dubious ownership in repository (0) | 2023.12.12 |
---|---|
[GitLab] Self-Managed GitLab에서 이메일 보낼 수 있도록 설정하기 (0) | 2023.10.30 |
[Git] Git username, password 저장하는 방법 (0) | 2023.06.02 |
[GitLab] GitLab root 비밀번호 강제 변경하기 (0) | 2023.03.03 |
[GitLab] Self-managed GitLab에 초기 로그인 방법 (0) | 2023.03.02 |
Comments