개발 메모장

[Jenkins] Jenkins 토큰 설정 및 빌드 본문

CI/CD

[Jenkins] Jenkins 토큰 설정 및 빌드

yyyyMMdd 2024. 12. 10. 10:32
728x90
  • 기업에선 폐쇄적인 GitLab을 사용하지만 시범 설치이니 Github에 올려둔 연습용 프로젝트를 연동하여 빌드하는 방법을 살펴보겠습니다.

#. Github 개인 토큰 발급받기

 

  • github.com에 로그인 하시어 우측 프로필을 클릭해주세요.

  • Settings > Developer Settings > Personal access tokens > Tokens(classic) 화면의 Generate new token을 클릭하여 Generate new token(classic)을 눌러줍니다.

  • 아래와 같은 화면이 나오며 Note는 목적에 맡게 작성해주시고, 만료일은 30일이 디폴트입니다만 테스트이므로 만료없음으로 선택하였습니다.

 

 

  • 그러면 이렇게 토큰이 생성된 것을 확인할 수 있으며 복사해줍니다.


#. Github 토큰 Jenkins에 설정하기

 

  • 좌측 메뉴탭에서 Jenkins 관리 > Credentials 클릭

  • Global을 눌러 줍니다.
    (기업에선 보안 및 권한 등의 이유로 소규모 프로젝트가 아닌 이상 Global Credential이 사용되는 경우가 드뭅니다.)

  • Add Credentials를 눌러 신규 토큰을 추가합니다.

  • UserName : 깃허브 아이디
  • PW : 깃허브 토큰값
  • ID : 원하는 ID 작성
  • Description : 설명


#. 프로젝트 만들기

 

  • 좌측 메뉴탭에서 새로운 Item을 눌러 생성할 수 있습니다.

  • 간단히 빌드와 배포만 할 것이기에 Freestyle project로 생성합니다.

728x90

  • 생성 가능한 프로젝트에 대한 설명은 아래와 같습니다.
    • Freestyle project
      - 젠킨스의 가장 기본적인 프로젝트 유형으로 단순하고 직관적인 빌드 시 사용합니다.

    • Pipeline
      - 스크립트를 사용해 빌드, 테스트, 배포 작업단계를 코드로 정의할 수 있습니다.
      - 복잡한 워크플로우 처리에 적합합니다.
      - Groovy 기반의 스크립트를 사용합니다.
      - 유지보수 및 재사용성이 좋습니다.

    • Multi-configuration project
      - 여러 환경에서 동일한 작업을 실행해야 할 때 사용합니다.
      - 여러 OS 또는 자바 버전 등의 다양한 환경에서 사용하기 위한 프로젝트입니다.
      - 다양한 환경에서 병렬로 빌드합니다
      - 매트릭스 기반 빌드 - 여러 브라우저 & OS를 조합해 테스트

    • Folder
      - 젠킨스 작업을 논리적으로 그룹화하여 관리 및 팀별, 프로젝트별 빌드환경을 분리하는 역할
      - 폴더 안에 위와 같은 프로젝트의 작업을 포함시킬 수 있습니다.

    • Multibranch Pipeline
      - Git과 같은 소스코드 관리시스템의 브랜치를 자동으로 탐지하고 브랜치별 파이프라인을 실행 시켜줍니다.
      - 각 브랜치에 jenkinsfile을 포함해 작업을 정의할 수 있습니다.

    • Organization Folder
      - GitLab 등 소스코드 관리시스템 그룹에 속한 모든 레파지토리를 자동으로 관리
      - 수십, 수백개의 레파지토리를 다루는 대규모 조직에서 주로 사용합니다.

#. 프로젝트 만들기 > 설정

 

  • 먼저 소스코드 관리를 누른 뒤 Git을 선택해줍니다. 

  • Repository URL : 소스코드관리에서 연결할 git의 url을 붙여 넣어 줍니다.

  • Credentials : 조금 전 만든 Github 토큰을 선택합니다.

  • Branch Specifier : 빌드할 브랜치를 입력합니다.

  • Build Steps 설정을 지정해줍니다.

  • Use Gradle Wrapper를 선택하고 location은 gradle/wrapper 가 있는 폴더를 입력해줍니다.

  • 레파지토리에 gradlew가 있다면 ${workspace}를 입력하면 되고, 레파지토리 내 다른 gradlew가 있다면 ${workspace}/프로젝트명을 입력하면 됩니다.

  • 저장을 누르면 이렇게 대시보드에서 확인이 가능합니다.


#. 빌드

 

  • 지금 빌드를 누르면 빌드가 시작됩니다.

  • 콘솔에서 확인하면 이렇게 성공한 것을 확인할 수 있습니다.
    (중간에 프로젝트를 sample로 변경해서 sample 디렉토리에 생성되었습니다.)

  • 빌드 파일 또한 경로에 생성되었습니다.


#. 약간의 삽질

 

  • sample로 변경하게 된 이유는 기존 github에 커밋한 프로젝트는 queryDSL_practice > queryDsl_Test > build.gradle 같은 식으로 하위 프로젝트로 존재하던 터라 오류가 발생했습니다.

  • gradle wrapper을 ${workspace}/queryDsl_Test로 지정했음에도 불구하고 명령어는 제대로 실행됐으나 What went wrong  문구는 queryDSL_practice에서 build.gradle을 찾는 바람에 계속해서 오류가 발생한다고 하였고, 해결되지 않아  queryDsl_Test 프로젝트를 밖으로 꺼냈습니다.

  • 또한 우분투 콘솔에선 clean build로 처리하였을 땐 test가 문제되어 build -x test로 처리했었습니다.

 

 

 

===========================================================
틀린 내용이 있거나 이견 있으시면 언제든 가감 없이 말씀 부탁드립니다!
===========================================================

728x90

'CI/CD' 카테고리의 다른 글

[Jenkins] Ubuntu에서 Jenkins 삭제  (0) 2024.12.09
[Jenkins] Jenkins 초기 설정하기  (0) 2024.12.09
[Jenkins] Jenkins 설치하기(Ubuntu 24.04)  (0) 2024.12.06