기본 사용법
함수 호출시 파라미터 전달
Jenkins pipeline은 groovy 를 사용하기 때문에 java 와 문법이 유사하다. 그러나 java 의 method 호출 방식은 method 의 signature 를 엄격하게 지켜야 한다. method 에서 정의한 모든 파라미터의 type 과 순서를 맞게 입력해야 해당 메소드를 호출할 수 있다. 사용하지 않는 파라미터라도 null 을 입력해서 method 의 signature 에 맞아야만 호출이 가능하기 때문에, 파라미터가 많고 필수로 입력할 필요가 없을 경우에는 매우 불편하다.
Retort 에서는 이런 불편함을 해소하고자 Groovy 의 특성을 활용한 2가지 파라미터 전달 방식을 사용한다.
Map type parameter
parameter 를 key, value 형태인 map 으로 전달한다.
// map 변수를 생성해서 전달 def param = [:] // groovy style 변수 추가 param.pom = './somePom.xml' // java style 변수 추가 param.put('profile', 'dev') mavenBuild param // 함수에 직접 전달 mavenBuild pom:'./somePom.xml', profile:'dev'
key 와 value 는 Colon(:) 으로 구분하고 여러 파라미터를 넘길 경우 Comma(,) 로 구분한다.
Closure type parameter
Closure 를 이용해 파라미터를 전달 가능하다.
mavenBuild { pom = './somePom.xml' profile = 'dev' }
파라미터 명을 string 으로 지정한게 아니라 이미 지정되어 있는 일반 변수처럼 사용하고, 해당 변수에 전달하고자 하는 값을 입력한다. 블록 안에서 파라미터 생성을 위한 로직을 추가할 수도 있다.
mavenBuild
maven build 와 관련된 동작을 수행한다.
Parameters
Parameter | type | default value | required | description |
---|---|---|---|---|
jdkTool | String | N/A | false | Jenkins 의 Global Tool Configuration 에 등록한 jdk 의 ID. 빌드 머신에 여러 버전의 jdk 가 설치되어 있어 특정 버전의 jdk 를 지정해야 할 때 사용한다. |
mavenTool | String | N/A | false | Jenkins 의 Global Tool Configuration 에 등록한 maven 의 ID. 빌드 머신에 여러 버전의 maven 이 설치되어 있어 특정 버전의 maven 을 지정해야 할 때 사용한다. |
pom | String | N/A | false | 빌드 시 사용 할 pom 파일의 workspace 내부 상대 경로 또는 절대 경로 설정하지 않을 경우 project root 에 위치한 pom.xml 파일을 사용한다. |
goal | String | N/A | true | build 할 maven goal |
profile | List<String> String | N/A | false | 빌드 시 사용 할 profile 명. pom.xml 에 설정되어 있는 특정 profile 을 사용 하여 빌드 할 경우 사용한다. |
systemProperties | map<String, String> | N/A | false | 빌드 시 사용할 system properties. mvn 명령어 수행 시 -D 옵션으로 추가하는 system properties 설정이 필요한 경우 사용한다. |
options | String | N/A | false | mvn 명령어의 기타 옵션을 추가 해야 할 경우 사용한다. |
settingsID | String | N/A | false | maven 빌드 시 settings.xml 파일을 사용해야 하는 경우 사용한다. Config File Provider Plugin 을 이용해 jenkins 에 파일을 미리 등록하고 해당 파일의 ID 를 이용해 호출한다. 미리 등록한 settings.xml 파일은 빌드 환경 안에 임시 파일로 생성되고 mvn 명령어 수행 시 -s 옵션으로 지정된다. Nexus 같은 특정 private repository 를 이용할 때 주로 사용된다. |
globalSettingsID | String | N/A | false | maven 빌드 시 settings.xml 파일을 사용ㅏㅕ해야 하는 경우 사용한다. Config File Provider Plugin 을 이용해 jenkins 에 파일을 미리 등록하고 해당 파일의 ID 를 이용해 호출한다. 미리 등록한 settings.xml 파일은 빌드 환경 안에 임시 파일로 생성되고 mvn 명령어 수행 시 -gs 옵션으로 지정된다. Nexus 같은 특정 private repository 를 이용할 때 주로 사용된다. settings 와 같이 설정 될 경우 settings 파일의 내용이 우선 순위가 높게 적용된다. |
Return
N/A
실행하는 Maven Goal 에 따라 workspace 내부에 결과물이 생성된다.
사용 예제
Kubernetes 에서 기본적인 maven 빌드
mavenBuild goal:'clean package' // 실제 수행되는 명령어 // mvn clean package
profile 지정
mavenBuild goal:'clean package', profile:'dev' // 실제 수행되는 명령어 // mvn clean package -Pdev // String 으로 두 개의 profile 지정 mavenBuild goal:'clean package', profile:'stg, prd' // 배열로 두 개의 profile 지정 mavenBuild goal:'clean package', profile:['stg', 'prd'] // 실제 수행되는 명령어 // mvn clean package -Pdev,prd
다른 경로의 pom 파일 사용
mavenBuild goal:'clean package', pom:'./dev/pom.xml' // 실제 수행되는 명령어 // mvn clean package -f ./dev/pom.xml
테스트 생략하기
mavenBuild goal:'clean package', systemProperties:['maven.test.skip':'true'] // 실제 수행되는 명령어 // mvn clean package -Dmaven.test.skip=true
settings 파일 적용하기
사전에 settings 파일을 미리 등록해두어야 한다.
Jenkins 관리 > Managed files > Add a new Config 메뉴 클릭.
Maven settings.xml 선택한다. ID 는 자동입력된 값을 사용해도 되지만, 사용자가 인식하기 편하도록 의미있는 값을 입력하기를 권장한다. (Pipeline 에서는 Name 이 아닌 ID 를 사용하기 때문)
mavenBuild goal:'clean package deploy', settingsID:'mySettings' // 실제 수행되는 명령어 // mvn clean package deploy -s ${임시경로}/config1662438358361787735tmp
mavenBuild.updateVersion
maven pom 파일의 버전을 업데이트 한다.
예를 들어, 아래와 같은 pom 파일이 있을 때
<?xml version="1.0" encoding="UTF-8"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <groupId>com.sk.tbd</groupId> <artifactId>bluegreen</artifactId> <version>0.0.1</version> <name>bluegreen</name> <description>Demo project for Spring Boot</description> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> ... </project>
project - version Tag 의 값을 변경하고자 할 때 사용한다.
version 값을 변경하면 빌드 시 생성되는 Artifact 파일명이 변경될 수 있으므로 주의해야 한다.
parameters
Parameter | type | default value | required | description |
---|---|---|---|---|
pom | String | pom.xml | false | workspace 안에서 pom 파일의 상대 경로 |
version | String | N/A | true | update 할 버전 값 |
Return
N/A
지정한 pom 파일의 version 값이 바뀐다. 파일 내용을 변경하고 저장할 때 Formatting 을 새로 하기 때문에 xml 의 모양이 변경될 수 있다.
사용 예제
version 을 0.0.2 로 업데이트
mavenBuild.updateVersion pom:'./pom.xml', version: '0.0.2'
dockerCmd
docker 명령어를 수행한다.
dockerCmd.build
docker build 명령어를 수행한다.
parameters
Parameter | type | default value | required | description |
---|---|---|---|---|
path | String | . | false | 빌드를 위한 Dockerfile 의 경로. workspace 로부터의 상대경로, 절대경로, Web URL 모두 가능. |
file | String | Dockerfile | false | 빌드 할 Dockerfile 의 파일명. |
tag | String List<String> | N/A | false | 빌드 할 때 생성 할 tag 명 |
buildArgs | Map<String, String> | N/A | false | Dockerfile 의 ARG 에 넘겨 줄 파라미터 |
options | String | N/A | false | 기타 docker build 옵션 |
Return
N/A
사용 예제
기본적인 docker 빌드
dockerCmd.build tag:'my/app:0.0.1' // 실제 수행되는 명령어 // docker build -t my/app:0.0.1 .
source root 의 Dockerfile 을 이용해 빌드한다.
여러 개의 tag 생성
dockerCmd.build tag:['my/app:0.0.1', 'my/app:latest'] // 실제 수행되는 명령어 // docker build -t my/app:0.0.1 -t my/app:latest .
다른 경로에 있는 특정 Dockerfile 을 이용해서 빌드
dockerCmd.build tag:'my/app:0.0.1', path: 'docker', 'file': 'Dockerfile-dev' // 실제 수행되는 명령어 // docker build -f Dockerfile-dev -t my/app:0.0.1 docker
source root 하위의 ./docker/Dockerfile-dev 를 이용해서 빌드한다.
buildArgs 전달
dockerCmd.build tag:'my/app:0.0.1', buildArgs: [file: "target/myApp-0.0.1.jar"] // 실제 수행되는 명령어 // docker build -t my/app:0.0.1 --build-arg file=target/myApp-0.0.1.jar .
아래처럼 Dockerfile 안에서 특정 값을 파라미터로 받을 필요가 있는 경우 buildArgs 를 사용한다.
FROM openjdk:8-jdk-alpine ARG file ADD ${file} app.jar ENTRYPOINT exec java -jar /app.jar
dockerCmd.tag
docker image 에 새로운 tag 를 생성한다.
Parameters
Parameter | type | default value | required | description |
---|---|---|---|---|
source | String | N/A | true | 새로 tagging 할 기존 tag. image 명을 포함해야 한다. |
target | String | N/A | true | 새로 생성 할 tag. image 명을 포함해야 한다. |
Return
N/A
사용 예제
dockerCmd.tag source:'my/app:0.0.1', target:'my/app:latest' // 실제 수행되는 명령어 // docker tag my/app:0.0.1 my/app:latest
dockerCmd.push
local 에 존재하는 docker image 를 remote registry 에 push한다.
Parameters
Parameter | type | default value | required | description |
---|---|---|---|---|
registry | String | docker.io | false | push 할 docker registry 주소. |
imageName | String | N/A | true | docker image 명. ex) jenkinsci/jenkins |
imageVersion | String | N/A | false | image 의 tag 명 |
credentialsId | String | N/A | false | docker login 시 사용 할 credential 의 ID |
username | String | N/A | false | jenkins 의 credential 기능을 사용하지 않고 username, password 를 직접 입력할 경우 사용 할 username. jenkinsfile 에 username, password 가 노출되므로 권장하지 않음. |
password | String | N/A | false | jenkins 의 credential 기능을 사용하지 않고 username, password 를 직접 입력할 경우 사용 할 password. jenkinsfile 에 username, password 가 노출되므로 권장하지 않음. |
Return
N/A
사용 예제
docker hub 에 이미지 올리기
Credential 은 미리 생성해두어야 한다.
dockerCmd.push imageName: 'my/app', imageVersion: '1.0.0', credentialsId: 'myCredentialsId' // 실제 수행되는 명령어 // docker login -u XXXX -p XXXX // docker push my/app:1.0.1 // docker logout
Private Repository 에 이미지 올리기
dockerCmd.push registry:'https://my.private.registry', imageName: 'my/app', imageVersion: '1.0.0', credentialsId: 'myCredentialsId' // 실제 수행되는 명령어 // docker login https://my.private.registry -u XXXX -p XXXX // docker push my/app:1.0.1 // docker logout
kubeCmd
kubectl 관련 명령어를 수행한다.
kubeCmd.apply
kubectl apply 를 실행하고, 이후의 관련 오류 처리를 수행한다.
Parameters
Parameter | type | default value | required | description |
---|---|---|---|---|
file | String | N/A | false | apply 할 yaml 또는 json 파일. folder가 지정되지 않을 경우에는 필수값임. |
folder | String | N/A | false | apply 할 파일이 들어있는 folder folder 를 대상으로 할 경우 recorverOnFail 기능을 사용할 수 없음. file이 지정되지 않을 경우에는 필수값임. |
namespace | String | N/A | false | 리소스를 apply 할 대상 namespace 지정하지 않을 경우 현재 사용중인 kubeConfig 의 namespace 에 apply 된다. |
recoverOnFail | boolean | false | false | apply 실패 시 복구 여부. delete or rollout undo - rollout 기능이 지원되는 deployment, daemonset, statefullset 만 가능. |
recoverFile | String | N/A | false | apply 실패 시 복구 할 이전 상태의 파일. recoverOnFail 이 true 인 경우에만 동작함. service 같이 rollout 기능이 지원되지 않는 타입에 사용. |
option | String | N/A | false | 기타 apply 옵션 |
wait | integer | 300 | false | apply 실행 후 최대 대기 할 시간 (second). 이 시간동안 정상 기동되지 않으면 apply 실패로 간주하고 recoverOnFail 옵션 여부에 따라 복구를 수행함. |
조회 유형 & 적용 우선순위 (위에서부터 순서대로)
- file
- folder
사용 예제
폴더 하위의 모든 file 적용
kubeCmd.apply folder: 'k8s'
현재 사용중인 kubeConfig 에 설정되어 있는 namespace 에 k8s 폴더 하위의 모든 파일을 apply 한다.
folder 를 대상으로 apply 하는 경우 wait, recoverOnFail, recoverFile 옵션은 무시된다.deployment 를 dev namespace 에 apply 하기
kubeCmd.apply file: 'k8s/deploy.yaml', namespace: 'dev'
./k8s/deploy.yaml 파일을 dev namespace 에 apply 한다.
wait 값을 지정하지 않았으므로 해당 Deployment 에 의해 생성되는 Pod 들이 완전히 기동 될때까지 최대 300초를 기다린다.
300초가 지나도 모든 Pod 이 완전히 기동되지 않으면 실패로 판단한다. 실패 시 kubectl describe 로 해당 Pod 들의 event 를 로그에 출력하고, Exception 을 발생시킨다.
deployment 를 dev namespace 에 apply 하고 1분 안에 Pod 기동 실패 시 이전 상태로 복구하기.
kubeCmd.apply file: 'k8s/deploy.yaml', namespace: 'dev', wait: '60', recoverOnFail: true
./k8s/deploy.yaml 파일을 dev namespace 에 apply 한다.
wait 값이 60 이므로 해당 Deployment 에 의해 생성되는 Pod 들이 완전히 기동 될때까지 최대 60초를 기다린다.
60초가 지나도 모든 Pod 이 완전히 기동되지 않으면 실패로 판단하고, describe 로 Pod 들의 event 를 로그에 출력한다.
apply 실행 시 동일한 이름의 Deployment 가 존재했으면 실패했을 때 Rollout undo 로 이전 Deployment 의 상태로 되돌린다.
동일한 이름의 Deployment 가 존재하지 않았으면 delete 로 기동 실패한 Deployment 를 삭제한다.
service 를 apply 하고 실패 시 이전 상태로 복구하기.
// 복구를 위한 원본 파일을 복사해둔다. sh 'cp k8s/service.yaml k8s/service_old.yaml' // service 파일 내용을 변경하는 예시. yaml.bluegreenServiceUpdate file: 'k8s/service.yaml' // 변경한 service 파일을 apply 하고 실패 시 원본 파일 상태로 되돌린다. kubeCmd.apply file: 'k8s/service.yaml', namespace: 'dev', recoverOnFail: true, recoverFile: 'k8s/service_old.yaml'
./k8s/service.yaml 파일을 dev namespace 에 apply 한다.
리소스가 service 타입이므로 wait 를 설정해도 대기하지 않는다.
recoverOnFail 옵션이 true 이므로 apply 시 에러가 발생하면 복구를 시도한다.
recoverFile 을 설정했으므로 service_old.yaml 파일을 다시 apply 하여 이전 상태로 복구한다. 만일 recoverFile 를 설정하지 않았으면 그냥 종료된다.
kubeCmd.describe
kubectl describe 를 실행한 내용을 log 에 출력한다.
Parameters
Parameter | type | default value | required | description |
---|---|---|---|---|
type | String | N/A | false | 조회 할 resource type (deploy, service, pod 등). file이 지정되지 않을 경우에는 필수값임. |
name | String | N/A | false | 조회 할 resource name. type을 지정했을 경우, name 또는 label이 필요함. |
label | Map | Map | false | 조회 할 resource 의 label. type을 지정했을 경우, name 또는 label이 필요함. |
file | String | N/A | false | 조회 할 resource의 file. type이 지정되지 않을 경우에는 필수값임. |
namespace | String | N/A | false | 조회 할 namespace |
throwException | boolean | false | false | 조회 실패 시 Exception 발생 여부 |
조회 유형 & 적용 우선순위
- type + name
- type + label
- file
사용 예제
deployment 의 name 으로 describe 출력
kubeCmd.describe type: 'deployment', name: 'myapp'
deployment 의 label 로 describe 출력
kubeCmd.describe type: 'deployment', label: ['app' : 'myapp']
yaml 파일로 describe 출력
kubeCmd.describe file: 'k8s/myapp.yaml'
조회 실패 시 error 발생시키기
kubeCmd.describe type: 'deployment', name: 'myapp', throwException: true
myapp 이란 deployment 가 존재하지 않을 경우 exception 이 발생한다.
kubeCmd.resourceExists
해당 리소스가 해당 namespace 에 이미 존재하는지 확인한다.
Parameters
Parameter | type | default value | required | description |
---|---|---|---|---|
type | String | N/A | false | 조회 할 resource type (deploy, service, pod 등). file이 지정되지 않을 경우에는 필수값임. |
name | String | N/A | false | 조회 할 resource name. type을 지정했을 경우, name 또는 label이 필요함. |
label | Map | Map | false | 조회 할 resource 의 label. type을 지정했을 경우, name 또는 label이 필요함. |
file | String | N/A | false | 조회 할 resource의 file. type이 지정되지 않을 경우에는 필수값임. |
namespace | String | N/A | false | 조회 할 namespace |
throwException | boolean | false | false | 조회 실패 시 Exception 발생 여부 |
return
boolean - 해당 resource 존재 여부
조회 유형 & 적용 우선순위
- type + name
- type + label
- file
사용 예제
deployment 가 namespace 에 존재하는지 확인하기
def exists = kubeCmd.resourceExsits type: 'deployment', name: 'myapp', namespace: 'dev'
myapp 이란 deployment 가 dev namespace에 이미 존재할 경우 true 를 return 하고, 존재하지 않을 경우 false 를 return 한다.
deployment 의 label 로 해당 deployment 가 존재하는지 확인
def exists = kubeCmd.resourceExsits type: 'deployment', label: ['app':'myapp']
yaml 파일로 해당 리소스가 존재하는지 확인
def exists = kubeCmd.resourceExists file: 'k8s/myservice.yaml'
kubeCmd.getValue
json path 를 이용해 해당 리소스의 특정 값을 추출한다.
Parameters
Parameter | type | default value | required | description |
---|---|---|---|---|
type | String | N/A | false | 조회 할 resource type (deploy, service, pod 등). file이 지정되지 않을 경우에는 필수값임. |
name | String | N/A | false | 조회 할 resource name. type을 지정했을 경우에는 필수값임. |
file | String | N/A | false | 조회 할 resource의 file. type이 지정되지 않을 경우에는 필수값임. |
jsonpath | String | N/A | true | 조회 할 데이터의 json path |
namespace | String | N/A | false | 조회 할 namespace |
throwException | boolean | false | false | 조회 실패 시 Exception 발생 여부 |
return
String - 추출한 jsonpath 값.
조회 유형 & 적용 우선순위
- type + name
- file
kubeCmd.rolloutStatus
특정 resource를 apply 한 후 readiness 가 성공할 때까지 대기한다.
deploy, daemonset, statefullset 만 지원한다.
Parameters
Parameter | type | default value | required | description |
---|---|---|---|---|
type | String | N/A | false | resource type(deployment, deploy, daemonset, ds, statefullset, sts). file이 지정되지 않을 경우에는 필수값임. |
name | String | N/A | false | resource name. type을 지정했을 경우에는 필수값임. |
file | String | N/A | false | resource의 file. type이 지정되지 않을 경우에는 필수값임. |
namespace | String | N/A | false | namespace |
wait | Integer | 300 | false | 최대 대기 할 시간 (second) wait 에 설정한 시간이 지나도 ready 상태가 되지 않으면 해당 Pod 의 describe 를 출력한다. throwException 을 true 로 설정한 경우 RC308 익셉션을 발생시킨다. |
throwException | boolean | false | false | 실패 시 Exception 발생 여부 |
조회 유형 & 적용 우선순위
- type + name
- file
kubeCmd.rolloutUndo
특정 resource 를 rollout history 의 이전 상태로 롤백시킨다.
deploy, daemonset, statefullset 만 지원한다.
Parameters
Parameter | type | default value | required | description |
---|---|---|---|---|
type | String | N/A | false | resource type(deployment, deploy, daemonset, ds, statefullset, sts). file이 지정되지 않을 경우에는 필수값임. |
name | String | N/A | false | resource name. type을 지정했을 경우에는 필수값임. |
file | String | N/A | false | resource의 file. type이 지정되지 않을 경우에는 필수값임. |
namespace | String | N/A | false | namespace |
revision | String | N/A | false | rollback 시킬 rollout history 의 revision. 입력하지 않으면 바로 이전의 상태로 롤백 된다. |
wait | Integer | 300 | false | 최대 대기 할 시간 (second) |
조회 유형 & 적용 우선순위
- type + name
- file
kubeCmd.delete
resource 를 삭제한다.
Parameters
Parameter | type | default value | required | description |
---|---|---|---|---|
type | String | N/A | false | resource type. file이 지정되지 않을 경우에는 필수값임. |
name | String | N/A | false | resource name. type을 지정했을 경우에는 필수값임. |
file | String | N/A | false | resource의 file. type이 지정되지 않을 경우에는 필수값임. |
namespace | String | N/A | false | namespace |
force | boolean | false | false | gracefull termination 설정이 되어 있어도 무시하고 바로 삭제한다. 참고 : https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods |
조회 유형 & 적용 우선순위
- type + name
- file
kubeCmd.scale
해당 resource 의 instance 수(Pod 갯수)를 조정한다.
deploy, daemonset, statefullset 만 지원한다.
Parameters
Parameter | type | default value | required | description |
---|---|---|---|---|
type | String | N/A | false | resource type. file이 지정되지 않을 경우에는 필수값임. |
name | String | N/A | false | resource name. type을 지정했을 경우에는 필수값임. |
file | String | N/A | false | resource의 file. type이 지정되지 않을 경우에는 필수값임. |
namespace | String | N/A | false | namespace |
replicas | Integer | N/A | true | 변경 할 Instance (Pod) 의 수 |
wait | Integer | 300 | false | 최대 대기 할 시간 (second) |
조회 유형 & 적용 우선순위
- type + name
- file
yaml
yaml 파일 관련 기능 제공
yaml.update
yaml 파일의 특정 값을 업데이트 한다.
Parameters
Parameter | type | default value | required | description |
---|---|---|---|---|
file | String | N/A | true | yaml 파일의 상대 경로 |
update | map(String, String) | N/A | false | 업데이트 할 yaml 파일의 경로와 업데이트 할 값의 map. ex) ['.metadata.name' : 'newName', '.metadata.labels.version','newVersion'] |
yaml.bluegreenDeployUpdate
bluegreen 에서 기본으로 사용되는 형태의 deployment.yaml 파일을 업데이트 한다.
.metadata.name
.metadata.labels.version
.spec.selector.matchLabels.version
.spec.template.metadata.labels.version
.spec.template.spec.containers[0].image
Parameters
Parameter | type | default value | required | description |
---|---|---|---|---|
file | String | N/A | true | yaml 파일의 상대 경로 |
version | String | N/A | false | 업데이트 할 version 값. .metadata.labels.version .spec.selector.matchLabels.version .spec.template.metadata.labels.version 함수의 파라미터로 직접 입력하지 않으면 properties 또는 parameter 의 VERSION 값을 취한다. |
deployName | String | N/A | false | 업데이트 할 Deployment name 값. .metadata.name 함수의 파라미터로 직접 입력하지 않으면 properties 또는 parameter의 APP_NAME-version 값을 취한다. |
dockerImage | String | N/A | false | 업데이트 할 Docker image 값. .spec.template.spec.containers[0].image 합수의 파라미터로 직접 입력하지 않으면 properties 또는 parameters의 DOCKER_IMAGE 값을 취한다. |
yaml.bluegreenServiceUpdate
bluegreen 에서 기본으로 사용되는 형태의 service.yaml 파일을 업데이트 한다.
.spec.selector.version
Parameters
Parameter | type | default value | required | description |
---|---|---|---|---|
file | String | N/A | true | yaml 파일의 상대 경로 |
version | String | N/A | false | 업데이트 할 version 값. .spec.selector.version 함수의 파라미터로 직접 입력하지 않으면 properties 또는 parameter 의 VERSION 값을 취한다. |
gitCmd
git 과 관련 된 명령어를 수행한다.
gitCmd.checkout
git 에서 checkout 을 받는다.
Parameters
Parameter | type | default value | required | description |
---|---|---|---|---|
url | String | N/A | true | git repository 의 url |
branch | String | */master | false | checkout 받을 remote branch |
credentialsId | String | N/A | false | git checkout 받을 때 필요한 credential 의 ID (계정 정보) |
poll | boolean | false | false | polling 여부 |
changelog | boolean | true | false | change log 를 남길지 여부 |
webviewUrl | String | env.GIT_WEB_VIEW_URL | false | change log를 보기 위한 git web browe url |
gitCmd.commit
변경한 파일을 commit 한다.
Parameters
Parameter | type | default value | required | description |
---|---|---|---|---|
file | String String[] List<String> | N/A | true | commit 할 단일 파일 또는 파일 목록 |
message | String | "Commit from Jenkins system. | false | commit message |
authorName | String | JENKINS-SYSTEM | false | commit 이력에 기록될 commiter 의 이름 |
authorEmail | String | jenkins.system@jenkins.com | false | commit 이력에 기록될 commiter 의 이메일 |
gitCmd.push
commit 한 파일을 원격 저장소에 push 한다.
Parameters
Parameter | type | default value | required | description |
---|---|---|---|---|
gitUrl | String | gitCmd.checkout 에 사용한 gitUrl property 또는 parameter 중 GIT_URL | false | push 할 git repository 의 URL |
credentialsId | String | N/A | false | git push 할 때 사용 할 계정 정보 |
tags | boolean | false | false | push 할 때 local repository 에 생성 한 tag 를 같이 push 할지 여부 |
gitCmd.tag
local repository 에 tag 를 생성하고 remote repository 에 push 한다.
Parameters
Parameter | type | default value | required | description |
---|---|---|---|---|
tag | String | N/A | true | 생성 할 tag 명 |
message | String | "Release from Jenkins system. | false | tag 의 message |
authorName | String | JENKINS-SYSTEM | false | commit 이력에 기록될 commiter 의 이름 |
authorEmail | String | jenkins.system@jenkins.com | false | commit 이력에 기록될 commiter 의 이메일 |
credentialsId | String | N/A | false | git push 할 때 사용 할 계정 정보 |