프로젝트 생성
실제로 프로젝트를 생성하고
테스트 하는 것을 진행해 보도록 하겠습니다.
프로젝트 생성방법에는 크게
3가지가 있습니다.
비어있는 프로젝트로부터 생성
제목에서도 유추할 수 있듯이 완전히 비어있는 Git 프로젝트를 생성합니다.새로 만들때 주로 사용됩니다. 선택하면 위와 같은 화면이 출력됩니다.
README 등을 추가할 수 있는지에 대한 여부를 선택할 수 있습니다.
템플릿으로 부터 생성
이미 만들어져 있는 프로젝트 Template으로 부터 생성합니다.선택하면 아래와 같은 화면이 출력됩니다.
애석하게도 템플릿 추가 등의 기능은 Pro Edition에서만 제공됩니다.
원격 레파지토리로 부터 생성
실제로 가장 많이 사용될 것으로 생각되는 기능입니다.이미 존재하는 레파지토리를 기준으로 현재 프로젝트를 생성하는 방법입니다.
보통 오픈소스로 부터 임포트를 하거나, 혹은 이미 관리되고 있던 프로젝트 형상관리에서 현재의 GitLab으로 이행하는데 사용됩니다.
개인적으로는 간단한 Template를 생성해 두고, 이를 복제하여 시작하는 것이 가장 쉽다고 생각합니다. (Template관리 기능이 분리되어 있기 때문입니다.)
.gitignore 설정등을 반복적으로 만들기 보다는 Template을 기준으로 생성해 두면 좋습니다.
CI 설정파일 작성하기
설정 파일에 관련된 내용이 가장 좋은 것은 원래 Gitlab의 .gitlab-ci.yml 문서 메뉴얼 이지만, 현실적으로 자세히 읽으면서 작업하기는 어렵습니다.제가 자주 쓰는 Platform이 .net Core이다 보니, 관련 자료를 검색하여 첨부합니다.
https://medium.com/devopslinks/continuous-integration-with-net-core-and-gitlab-5cd51161c072
필요한 내용을 첨삭하여 정리합니다.
예제 프로젝트 가져오기
원저자의 사이트에서 프로젝트 복제를 통해 .net Core의 예제 프로젝트를 가져옵니다.https://gitlab.com/jelleverheyen/dotnet-ci-example.git
해당 프로젝트의 구조는 대략 다음과 같습니다.
여기서 .gitlab-ci.yml 파일은 최상위 경로인 dotnet-ci-example에 있어야 합니다.
.gitignore 파일과 같이 취급하시면 됩니다.
설정 파일 살펴보기
설정파일을 확인해 보면 다음과 같은 구성을 이루고 있습니다.
image:
microsoft/dotnet:latest
stages:
-
build
-
test
variables:
test:
"Example.Test"
before_script:
-
"cd src"
-
"dotnet restore"
build:
stage:
build
script:
-
"dotnet build"
test:
stage:
test
script:
-
"cd $test"
-
"dotnet test"
|
각 내용을 살펴 보면다음과 같습니다.
image → 이 동작이 수행될 docker상의 image 명칭
보통 계정/이미지 이름으로 식별되는 이미지 이름이 들어갑니다. (생략가능)
생략할 경우에는 Gitrunner를 등록할때 사용하신 이미지가 사용됩니다.
(docker일 경우)
stages → 이설정 안에 포함될 구성의 명칭들.. 위의 예에서는 빌드(build)와
테스트(test)로만 구분하였습니다.
variables
→ 사용될
변수들을 정의 합니다.
예제에서는 test라는 값에 “Example.Test”를 선언하였습니다.
예제에서는 test라는 값에 “Example.Test”를 선언하였습니다.
before_script
→ 해당
stage를
수행하기전에 공통적으로 수행해야 하는 작업들을
기입합니다.
build
→ 빌드에
대한 실제 행위를 수행합니다.
하위에는
두가지 내용이 존재합니다.
stage
→ 스테이지의
이름을 명시합니다.
script
→ 실제
실행될 Script의
내용을 기입합니다.
Test
항목도
마찬가지입니다.
실제로
대상 플렛폼이 바뀌어도,
적절한
유닛 테스트와 빌드에 관련된 설정만 변경하여 동일하게
적용이 가능합니다.
추가적인
설정을 통해 좀더 복잡한 작업도 가능합니다.
실제 동작확인하기
CI는 보통 사용자가 Commit하는 순간 일어납니다.프로젝트에서 Commit을 수행하시면, Pipe 수행이 일어나며 수행시에 해당 프로젝트의 CI 항목을 살펴보면 아래와 같습니다.
이제 레파지토리가 깨졌는지 여부를 고민하지 않고 작업을 하는 환경이 구축되었습니다.
즐거운 개발 작업 하시기를 기원합니다.
댓글 없음:
댓글 쓰기
참고: 블로그의 회원만 댓글을 작성할 수 있습니다.