Gitlab에서 기본 CI 파이프라인 설정



이 자습서에서는 Gitlab에서 기본 CI(연속 통합) 파이프라인을 설정합니다.

이 게시물의 의도는 기본 사항을 다루는 것이며 에서는 .

이 예제의 코드는 my gitlab.com repo에서 사용할 수 있습니다.

관련 게시물






  • 우리는 무엇을 할 것입니까?



    이것의 목표는 마스터 브랜치에 대한 커밋이 있을 때마다 .gitlab-ci.yml에 의해 정의된 작업이 실행되고 스크립트에서 종료 코드 0이 반환된 경우에만 통과되도록 하는 것입니다.

    작업은 Giltab에서 호스팅되는 gitlab runners에서 실행됩니다. 중요한 점은 모든 작업이 서로 독립적으로 실행된다는 것입니다.

    기본 파이프라인



    이 파이프라인에는 2개의 기본 작업이 있으며 각 작업은 일련의 스크립트를 실행합니다.

    짓다:

    $ echo "this is building"
    $ hostname
    $ mkdir builds
    $ touch builds/data.txt
    $ echo "true" > builds/data.txt
    


    테스트:

    $ echo "this is testing"
    $ hostname
    $ test -f builds/data.txt
    $ grep "true" builds/data.txt
    


    파이프라인 설정:



    내 작업 공간에 복제한 새로 생성된 리포지토리에서 구성을 생성합니다.

    $ touch .gitlab-ci.yml
    


    위 yaml 파일의 구성:

    stages:
      - build
      - test
    
    build:
      stage: build
      script:
        - echo "this is building"
        - hostname
        - mkdir builds
        - touch builds/data.txt
        - echo "false" > builds/data.txt
      artifacts:
        paths:
          - builds/
    
    test:
      stage: test
      script:
        - echo "this is testing"
        - hostname
        - test -f builds/data.txt
        - grep "true" builds/data.txt
    


    구성 설명


  • 이 파이프라인에 대해 빌드 및 테스트
  • 의 2단계를 정의합니다.
  • 각 작업의 컨텍스트, 단계, 스크립트(러너의 수명 주기에서 실행될 명령) 및 아티팩트(아티팩트는 각 작업이 다른 러너에서 실행되므로 전송될 콘텐츠임)를 제공합니다. 용기)

  • 내 파이프라인이 실패할 수 있도록 일부러 실수를 저질렀습니다. 빌드 작업에서 builds/data.txt 파일에 콘텐츠 "false"를 채우고 테스트 작업에서 "true"라는 단어를 grep하여 이 작업이 실패하도록 했습니다.

    Gitlab에 푸시



    콘텐츠를 구성 파일에 저장하고 마스터에 추가, 커밋 및 푸시합니다.

    $ git add .gitlab-ci.yml
    $ git commit -m "add gitlab-ci config"
    $ git push origin master
    


    Gitlab 파이프라인



    Gitlab UI에서 CI/CD -> 파이프라인으로 이동하면 파이프라인이 실행되는 것을 볼 수 있습니다.



    파이프라인 ID를 선택하면 파이프라인에서 사용 가능한 작업이 표시되어야 합니다.



    작업을 선택하면 작업 개요가 표시됩니다. 이 시점에서 빌드 작업이 완료되었고 테스트 작업이 실행 중인 것을 볼 수 있습니다.



    잠시 후 테스트 작업의 상태가 실패로 변경되고 작업 ID를 선택하면 출력이 표시됩니다.



    위의 출력에서 ​​새 이슈를 생성할 수 있는 링크를 제공하며 이는 매우 편리합니다.

    파이프라인 구성 수정



    계속해서 .gitlab-ci.yml 구성의 콘텐츠를 변경하고 마스터로 푸시해 보겠습니다.

    $ vim .gitlab-ci.yml
    


    파일의 전체 내용인 - echo "false" > builds/data.txt 에서 - echo "true" > builds/data.txt 로 12행을 변경합니다.

    stages:
      - build
      - test
    
    build:
      stage: build
      script:
        - echo "this is building"
        - hostname
        - mkdir builds
        - touch builds/data.txt
        - echo "true" > builds/data.txt
      artifacts:
        paths:
          - builds/
    
    test:
      stage: test
      script:
        - echo "this is testing"
        - hostname
        - test -f builds/data.txt
        - grep "true" builds/data.txt
    


    커밋하고 마스터에 푸시:

    $ git add .gitlab-ci.yml
    $ git commit -m "change content in script"
    $ git push origin master
    


    파이프라인으로 이동하면 파이프라인이 바쁘게 실행되고 오른쪽에 방금 만든 커밋이 표시됩니다.



    훌륭한 성공



    파이프라인 ID를 선택한 다음 작업을 선택하면 두 작업이 모두 성공한 것으로 표시됩니다.



    테스트 작업의 작업 ID를 선택하면 출력에서 ​​작업이 성공했음을 확인할 수 있습니다.



    이 출력에서 ​​stdout에 반환된 호스트 이름이 다르기 때문에 각 작업이 다른 실행기에서 실행되었음을 두 작업에서 확인할 수도 있습니다.

    자원



    이것은 Gitlab CI를 시연하기 위한 정말 기본적인 예제였습니다. 이 게시물과 관련된 일부 리소스:
  • Gitlab CI/CD Docs
  • More of my Gitlab Posts

  • 감사합니다



    당신이 무슨 생각을하는지 제게 알려주세요. 내 콘텐츠가 마음에 든다면 언제든지 ruan.dev로 나를 방문하거나 Twitter에서 나를 팔로우하십시오.

    좋은 웹페이지 즐겨찾기