[Jenkins] Jenkins copyArtifacts
About copyArtifacts
Jenkins에서 pipeline을 구성하다 보면 특정 job의 결과물들을 현재 경로로 copy해와야 하는 경우가 자주 생깁니다.
Linux상에서 해당 작업을 할 경우에 절대 경로, 혹은 현재 workspace 기준 상대 경로로 접근하기가 쉬운데, 이 경우 job의 PATH가 바뀔 시 code 수정을 다시 해줘야 하는 불편함이 있습니다.
이를 편하게 하기 위해 Jenkins에서는 copyArtifacts라는 plugin을 제공합니다.
How to use copyArtifacts
Install copyArtifacts plugin
-
Jenkins web의 왼쪽 상단 menu에서 “Jenkins 관리” 선택
-
System Configuration menu에서 “플러그인 관리” 선택
-
“설치 가능” tab 선택 후 “Copy Artifact” 검색 및 설치
참고로 저는 이미 설치를 했기 때문에 “설치된 플러그인 목록”에서 확인할 수 있습니다.
copyArtifacts parameters
아래는 copyArtifacts의 각 parameter에 대한 설명입니다.
parameter | type | description |
---|---|---|
projectName | string | Artifact를 복사할 Jenkins job name |
excludes(optional) | string | 복사할 artifacts에서 제외할 artifact 경로 및 패턴 |
filter(optional) | string | 모든 artifacts를 복사할 때는 공백 혹은 사용하지 않으면 되며, 특정 artifacts를 복사할 때에 사용. 특정 artifacts의 (상대)경로 및 패턴 |
fingerprintArtifacts(optional) | boolean | Artifact의 MD5 checksum을 기록, 빌드를 추적하는데 사용 |
flatten(optional) | boolean | 복사할 artifact의 directory 구조는 copy해오지 않음 |
optional(optional) | boolean | copyArtifacts애서 실패가 발생하더라도 step 실패가 발생하지 않음 |
parameters(optional) | string | 특정 매개변수 또는 다른 빌드 변수와 일치하는 build만 선택하도록 필터링할 때 사용. 예를 들어 Foo=bar, BAZ=true는 매개변수 Foo가 bar로 설정되고, BAZ 확인란이 선택된 상태에서 실행된 빌드만 검사 |
selector(optional) | BuildSelector | latest successful, stable build, latest 등 artifact를 복사할 build state를 선택 |
target(optional) | string | 복사할 대상 directory 지정 시 사용 |
아래는 위 parameter중 selector에서 사용할 수 있는 list입니다.
name | description |
---|---|
lastSuccessful | lastest successful build |
specific | specific build |
permalink | specified by permalink |
lastCompleted | lastest completed build(ignoring build status) |
lastSavedBuild | lastest saved build(marked “keep forever”) |
buildParameter | specified by a build parameter |
upstream | upstream build that triggered this job |
사용 예제
- ‘job-A’ job을 parameter ‘A’와 함께 trigger 후, job-A의 결과물들 중 확장자가 ‘txt’로 끝나는 file들을 현재 workspace 기준 ‘Archive’ directory로 copy
Leave a comment