Jenkins

Jenkins 파이프라인 기초 / Github, 스크립트 사용

vhxpffltm 2021. 8. 19. 22:15

이전에 빌드 순서를 조절하여 빌드하고 빌드된 결과들을 확인해 보았다.

 

여기서는 Git을 사용하여 Github 프로젝트를 빌드하고 스크립트를 사용하여 Master와 Agent 노드들을 실행해보도록 한다.

 

사용한 Github 프로젝트는 아래와 같다.

https://github.com/simplilearn-github/Pipeline_Script

 

 

프로젝트를 생성하며 pipeline으로 프로젝트를 생성한다.

프로젝트를 구성하는데 아래와 같이 먼저 확인할 수 있는 내용이 있다.

 

Piplein Syntax 를 클릭하여 살펴보자.

 

해당 링크를 타면 이곳에서 스크립트를 어떻게 짜야하는지 간단하게 알 수 있다. 다양한 sample step이 있으며 각 상황에 맞는 스크립트를 활용할 수 있다.

 

git의 경우 저장소 URL을 입력하고 빌드할 브랜치를 선택한 후 'Generate Pipline Script'를 클릭하면 스크립트 코드를 확인할 수 있다.

 

 

간단한 예로 위의 그림과 같이 echo 출력에 대한 스크립트를 확인할 수 있다.

 

이제 pipeline script에 스크립트 코드를 작성해보자

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                echo "checking git.....";
                git 'https://github.com/simplilearn-github/Pipeline_Script.git'
                }
            }
            
            stage('build'){
                steps{
                    echo "building the checked project....";
                    bat 'Build.bat'
                }
            }
            
            stage('test'){
                steps{
                    echo "runing.....";
                    bat 'Unit.bat'
                }
            }
          
        }
    }
cs

 

어느정도 보면 감이 오겠지만, agent는 노드를 뜻하고 stages를 통해 stage들의 각 단계들이 실행되는 의미이다.

 

해당 파이프라인을 실행하고 출력을 확인해보자.

 

 

그림과 같이 checking git step이 실행된것을 보이고 하단에 나머지 pipeline 코드도 실행되는것을 확인할 수 있을것이다. 

 

 

이번엔 agent 노드에서 pipeline을 적용해보자.

agent노드를 실행하고 위와 같이 pipeline 프로젝틀르 생성한다. 

 

pipeline script에서 agent 설정은 label로 적용할수 있다.

 

1
2
3
4
5
6
pipeline {
    agent {
        label 'node_name'
}
 
'''''
cs

 

위 코드에서 이부분만 수정하면 해당 이름의 agent에서 실행된다. 

쉽게 적용할 수 있는 특징이 있다.

pipeline의 다른 스크립트도 찾아서 공부해볼 필요가 있을 것이다.

 

 

마지막으로 master 노드와 agent 노드를 병렬로 수행하기 위한 간단한 스크립트로 테스트 해본다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
pipeline {
    agent none
    stages {
    
    stage('Non-Parallel Stage') {
        agent {
                        label "master"
                }
        steps {
                echo 'This stage will be executed first'
                }
        }
 
    
        stage('Run Tests') {
            parallel {
                stage('Test On Windows node!!') {
                    agent {
                        label "Windows_node"
                    }
                    steps {
                        echo "Task1 on Agent"
                    }
                    
                }
                stage('Test On Master') {
                    agent {
                        label "master"
                    }
                    steps {
                        echo "Task1 on Master"
                    }
                }
            }
        }
    }
}
cs

 

 

 

이제 Jenkins를 통해 여러분의 프로젝트 빌드를 하고싶은 대로 테스트하고 점검해볼 수 있을것이다.

 

Reference

https://www.youtube.com/watch?v=FX322RVNGj4&list=WL&index=17