이전에 빌드 순서를 조절하여 빌드하고 빌드된 결과들을 확인해 보았다.
여기서는 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
'Jenkins' 카테고리의 다른 글
[jenkins] Job 시작 디렉토리 / 서브 모듈 갱신 (0) | 2022.03.24 |
---|---|
jenkins Pycharm Integration plugin (0) | 2021.11.09 |
Jenkins 파이프라인 기초 / 빌드 순서 적용 (0) | 2021.08.11 |
Jenkins 분산 환경 - slave / 빌드 예약 (0) | 2021.08.04 |
Jenkins 시작하기 (0) | 2021.07.26 |