GitLab CI/CD에 대한 초보자 소개

이 자습서의 목표는 GitLab CI/CD에 대한 고급 소개를 제공하여 GitLab의 모든 문서를 읽지 않고도 30분 이내에 사용할 수 있도록 돕는 것입니다.이 자습서는 GitLab CI/CD와 같은 CI/CD 도구를 수정하려는 초보자를 대상으로 합니다.이 강좌에서는 CI/CD가 무엇인지, GitLab 도구를 사용하는 이유, 예시 프로그램 생성.gitlab-ci.yaml을 사용하는 방법에 대한 연습을 간략하게 소개합니다.

CI/CD


CI/CD는 지속적인 통합/지속적인 배송/지속적인 배포의 약자입니다.그것은 팀으로 하여금 더욱 빠른 속도로 소프트웨어를 구축하고 테스트하며 발표할 수 있게 한다.CI/CD는 가능한 경우 수동 상호 작용 제거 - 최종 수동 코드가 생산 환경에 배치되는 것을 제외하고는 모든 것이 자동화되었다.이러한 접근 방식을 구현하기 위한 과제 중 하나는 CI/CD 파이프라인 구축에 필요한 다양한 툴과 시스템을 통합하는 것입니다.예를 들어, 코드를 비트bucket에 저장하고, 개인 인프라의 자동 테스트 세트에서 테스트를 진행하며, 응용 프로그램을 AWS나 Microsoft Azure에 배치할 수 있습니다.여러 시스템에 상주하는 복잡한 어플리케이션 때문에 모든 조직에서 CI/CD 파이프라인이 원활하게 작동하지 않습니다.

왜 GitLab CI/CD입니까?


내가 GitLab CI/CD를 사용하는 데는 세 가지 이유가 있다. 나는 하나의 도구로 완전한 CI/CD 파이프 해결 방안을 구축할 수 있다. 그것은 속도가 빠르고 원본이다.GitLab CI/CD를 사용하면 다른 응용 프로그램 없이 영수증을 만들고 요청을 병합하며 코드를 작성하고 CI/CD 도구를 설정할 수 있습니다.그것은 본질적으로 원스톱 상점이다.GitLab CI/CD runs는 GitLab Runner를 기반으로 제작되었습니다.Runner는 GitLab CI API를 통해 미리 정의된 단계를 실행하는 독립 실행형 가상 시스템입니다.하나의 실례에서 실행하는 것보다 이 도구만 프로젝트를 파이프 구축에서 더 빨리 실행할 수 있습니다.GitLab Runner에 대한 자세한 내용은 여기link에서 확인할 수 있습니다.마지막으로, 이것은 원본이기 때문에, 나는 언제든지 코드 라이브러리에 공헌할 수 있고, 문제가 발생할 때 새로운 문제를 만들 수 있다.

각본


만약 우리가 노드가 하나 있다고 가정한다면.데이터베이스에 있는 책 목록의 js API를 읽어들입니다.우리는 코드를 세 단계로 추진할 수 있는 파이프를 만들 수 있다. 그것이 바로 구축, 테스트, 배치이다.파이프는 비슷한 피쳐로 그룹화되는 단계 세트입니다.이러한 단계에서 우리의 파이프는 세 가지 유형으로 나뉜다.
  • 프로젝트 파이프
  • 지속적인 통합 파이프
  • 배포 파이프
  • 프로젝트 파이프에 의존 항목을 설치하고, linter와 처리 코드를 실행하는 스크립트를 실행합니다.지속적으로 집적 파이프가 자동 테스트를 실행하고 코드의 분포식 버전을 구축합니다.마지막으로, 배치 파이프는 코드를 지정한 클라우드 공급자와 환경에 배치합니다.
    이 세 파이프가 실행하는 절차를 작업이라고 부른다.이러한 특징에 따라 일련의 업무를 그룹으로 나누면 단계라고 불린다.작업은 파이프의 기본 구성 부분이다.그것들은 단계별로 조합할 수도 있고 단계별로 파이프로 조합할 수도 있다.다음은 작업, 단계 및 파이프의 예제 계층입니다.
    A.) Build
         i. Install NPM Dependencies
         ii. Run ES-Linter
         iii. Run Code-Minifier
    B.) Test
         i. Run unit, functional and end-to-end test.
         ii. Run pkg to compile Node.js application
    C.) Deploy
         i. Production
            1.) Launch EC2 instance on AWS
         ii. Staging
            1.) Launch on local development server
    
    이 차원 구조에서 모든 세 개의 구성 요소는 세 개의 다른 파이프로 간주된다.주탄 --  구축, 테스트와 배치는 단계이고 이 부분의 모든 항목 기호는 작업이다.GitLab CI/CDyaml 파일로 분해해 보겠습니다.

    GitLab CI/CD 사용


    GitLab CI/CD를 사용하려면 GitLab 저장소의 프로젝트 루트 디렉토리에 .gitlab-ci.yml라는 파일을 만들고 다음yaml을 추가합니다.
    image: node:10.5.0
    
    stages:
      - build
      - test
      - deploy
    
    before_script:
      - npm install
    
    앞서 언급한 바와 같이 GitLab CI/CD는 실행 프로그램을 사용하여 파이프를 실행합니다.image 명령을 사용하여 우리는 프로그램이 어떤 운영체제와 미리 정의된 라이브러리를 기반으로 하고 싶은지 정의할 수 있다.우리의 예에서 우리는 최신 버전의 노드를 사용할 것이다.우리 주자들.stages 명령은 전체 설정을 위한 단계를 미리 정의할 수 있도록 합니다.작업은 stages 명령에 나열된 순서에 따라 실행됩니다.단계에 대한 자세한 내용은 해당 단계here를 참조하십시오.before_script 명령은 모든 작업 전에 명령을 실행하는 데 사용됩니다.
    이제 구축 단계에 주력하는 작업부터 시작합시다.우리는 이 작업을 build-min-code라고 명명할 것이다.이 작업에서, 우리는 그것이 의존항을 설치하고 코드를 축소하기를 바란다.우리는 script 명령을 사용하는 것부터 시작할 수 있다.script 명령은 실행 프로그램에서 실행되는 셸 스크립트입니다.그리고 우리는 이 일을 구축 단계로 분배할 것이다.작업을 단계에 할당하려면 stage 명령을 사용하십시오.
    build-min-code:
      stage: build
      script:
        - npm install
        - npm run minifier
    
    
    현재 우리는 구축 단계와 관련된 일이 하나 생겼는데, 우리는 테스트 단계에서 이렇게 할 것이다.우리의 테스트 작업은 호출될 것입니다. run-unit-test API에서 npm 스크립트를 사용하여 테스트를 실행할 것입니다. npm test
    run-unit-test:
      stage: test
      script:
        - npm run test
    
    
    마지막으로 우리는 배치 단계를 처리하는 작업을 추가할 것이다. deploy-production, deploy-staging.본 예에서 우리는 두 가지 다른 배치 작업(임시 저장과 생산)이 있을 것이다.이 일들은 우리의 이전 업무와 같은 구조를 반영하지만 작은 변화가 있을 것이다.현재, 우리의 모든 작업은 코드 전송이나 지점에서 터치하도록 자동으로 설정됩니다.우리가 코드를 무대에 배치하고 생산 환경에 배치할 때, 우리는 이렇게 하기를 원하지 않는다.이러한 상황을 방지하기 위해서 우리는 only 지령을 사용한다.only 명령은 작업이 실행될 지점과 표시의 이름을 정의합니다.작업은 다음과 같습니다.
    deploy-staging:
     stage: deploy
     script:
       - npm run deploy-stage
     only:
       - develop
    
    deploy-production:
     stage: deploy
     script:
       - npm run deploy-prod
     only:
       - master
    
    deploy-staging 작업에서는 develop 분기와 deploy-production 분기가 변경될 때만 프로그램이 실행됩니다.다음 화면 캡처는 master 지점에 대한 코드 전송을 보여 줍니다.

    이 그림에서 master를 제외한 모든 세 단계와 작업은 코드가 deploy-staging로 전송되었기 때문에 촉발되었다.GitLab CI/CD는 실행 중인 작업과 단계, 빌드 과정에서 발생한 오류를 표시하는 직관적인 인터페이스를 제공합니다.다음은 master 파일의 최종 버전입니다.직접 테스트하고 싶으면, 다음은 예시 프로그램 link 입니다.
    image: node:10.5.0
    
    stages:
      - build
      - test
      - deploy
    
    before_script:
      - npm install
    
    build-min-code:
      stage: build
      script:
        - npm install
        - npm run minifier
    
    run-unit-test:
      stage: test
      script:
        - npm run test
    
    deploy-staging:
      stage: deploy
      script:
        - npm run deploy-stage
      only:
        - develop
    
    deploy-production:
      stage: deploy
      script:
        - npm run deploy-prod
      only:
        - master
    

    결론


    위에서 설명한 내용은 GitLab CI/CD에서 제공할 수 있는 기능에 대한 고급 개요입니다.GitLab CI/CD는 Docker 이미지를 구축하고 발표하며 제3자 도구와 통합하여 코드 라이브러리의 자동화를 더욱 깊이 있게 제어할 수 있다.나는 네가 이 강좌가 매우 도움이 된다고 생각하기를 바란다.읽어주셔서 감사합니다!

    좋은 웹페이지 즐겨찾기