3. Jenkins pipeline 구축 With Git AccessToken

Pipeline 프로젝트 생성

사전 작업 : Git Token 발급 및 등록

  • Jenkins 관리로 들어가 하단의 Credentials 클릭

 

  • 적절한 권한 설정 및 생성

  • Repo 접근 위해서는 UserName With Password를 선택
    • Secret text를 선택하게 되면 Repo에 접근 불가.

  • Github AccessToken → Read, Write 권한 Repo

 

Item 생성

 

  • GitHub Project를 선택 후 해당 Repo 주소를 입력
    • Gitlab 사용 시 → Gitlab PlugIn 설치 후 해당 설정 사용

  • Pipeline 위치 명시
    • Git Repo 주소 및 이전에 등록한 Credentials Token 선택

  • Git 기준으로 Jenkins File 위치

PIPELINE 구축

  • 간단한 예시 코드
    • 필요한 작업이 다수 빠져있음. 자신의 프로젝트에 맞게 수정하여 사용해야함.
    • 흐름 전달을 위해 간단하게 작성한 Test Code 임
  • 문법의 경우 아래 포스팅 참고

1. Jenkins 란? (Freestyle Project vs Pipeline Project)

pipeline {
    agent any

    stages {
        // Stage 1: Git Clone
        stage('Git Clone') {
            steps {
                script {
                    git branch: 'master',
                    url: 'https://{repo URL}', // Replace with actual repo URL
                    credentialsId: '****' // Git Credential ID, replace with actual credential ID
                }
            }
            post {
                success {
                    echo "Successfully Cloned Repository"
                }
                failure {
                    echo "Failed to Clone Repository"
                }
            }
        }

        // Stage 2: SonarQube Analysis
        stage('SonarQube analysis') {
            steps {
                withSonarQubeEnv('SonarQube Server') {
                    dir('demo') {
                        sh 'chmod +x gradlew'
                        sh './gradlew wrapper --gradle-version=8.5'
                        sh './gradlew clean build sonarqube --warning-mode all'
                    }
                }
            }
        }

        // Stage 3: Build Server
        stage('Build server') {
            steps {
                dir('/var/jenkins_home/workspace/test/demo/') {
                    sh 'chmod +x gradlew'
                    sh './gradlew clean build'
                    sh 'cp ./build/libs/demo-0.0.1-SNAPSHOT.jar /var/jenkins_home/workspace/dockerbuildfile/server/demo-0.0.1-SNAPSHOT.jar'
                }
            }
        }

        // Stage 4: Run Docker Compose
        stage('Run Docker Compose') {
            steps {
                sh 'docker-compose -f /var/jenkins_home/workspace/dockerbuildfile/docker-compose.yml down'
                sh 'docker rmi image dockerbuildfile-front:latest || true'
                sh 'docker rmi image dockerbuildfile-demo-app:latest || true'
                sh 'docker-compose -f /var/jenkins_home/workspace/dockerbuildfile/docker-compose.yml up -d --build'
            }
        }
    }
}

'Infra > Jenkins' 카테고리의 다른 글

2. Jenkins 설치  (0) 2024.02.04
1. Jenkins 란? (Freestyle Project vs Pipeline Project)  (0) 2024.02.02