본문 바로가기
개발공부

GitLab CI/CD 시작하기

by bzerome240 2023. 12. 18.

데브옵스 전문 기업 인포그랩 사이트에서 작성한 가이드를 보는데 좋아서 참고하기

 

GitLab CI/CD 시작하기 | InfoGrab, DevOps 전문 기술 기업 | 인포그랩 | GitLab기반 DevSecOps 구축,컨설팅,교

GitLab CI/CD는 지속적인 방법론을 통한 소프트웨어 개발을 위해 GitLab에 내장된 도구입니다. GitLab을 통해 CI/CD를 시작하는 방법에 대해 알아봅니다. 이를 통해 개발 주기 초기에 버그와 오류를 포착

insight.infograb.net

 

CICD를 도입하는 이유는 지속적 코드 수정이 일어나면서 배포 시 과정을 용이하게 하기 위해 사용한다.

 

 


시작전

  • maintainer 또는 owner 권한이 필요하다.
  • job을 실행할 수 있는 Runner가 있는지 확인한다. 없으면 설치하고 runner를 등록한다.
  • .gitlab-ci.yml 파일을 프로젝트 루트에 생성한다.

 


 

.gitlab-ci.yml

: CI/CD에 대한 YAML 파일

ex) master 브랜치 외에 커밋할때 테스트 모음을 실행할 수 있다. 

 

정의 내용

1. 러너가 실행해야 하는 job의 구조와 순서

2. 특정 조건이 발생할 때 러너가 내려야하는 결정

 

ex) .gitlab-ci.yml

  • 4개의 job이 있는 상태
  • stage대로 job이 순차실행된다.
    • 단일 stage에서 job은 병렬로 실행된다.
    • stage에서 벗어나 job을 실행하려면 needs 키워드를 사용한다.
  • 각 job은 script를 포함한다.
  • $GITLAB_USER_LOGIN 은 변수 형태이다.
  • before script : 스크립트 시작 전 작업
  • when: 언제 실행할 지 (수동클릭으로 진행하고 싶다면 -> manual)
build-job:
  stage: build
  only:
    - master
  before_script:
    - echo 'build starts'
    - chmod +x ./gradlew
  script:
    - ./gradlew clean build
  artifacts:
    paths:
      - build/libs/*.jar
    expire_in: 1 week 
  tags:
    - gitlab-runner 생성시 작성한 Tag 명
  when: manual 

test-job1:
  stage: test
  script:
    - echo "This job tests something"

test-job2:
  stage: test
  script:
    - echo "This job tests something, but takes more time than test-job1."
    - echo "After the echo commands complete, it runs the sleep command for 20 seconds"
    - echo "which simulates a test that runs 20 seconds longer than test-job1"
    - sleep 20

deploy-prod:
  stage: deploy
  script:
    - echo "This job deploys something from the $CI_COMMIT_BRANCH branch."
  environment: production

 


 

파이프라인과 job 상태 보기

  • Build > Pipelines로 이동하면 위에서 build job 1개, test job 2개, deploy job 1개를 정의했으므로 총 3단계 stage 파이프라인이 표시된다.
  • 1개인 경우 1개만 표시된다

 

728x90
반응형

댓글