1 minute read

About copyArtifacts

Jenkins에서 pipeline을 구성하다 보면 특정 job의 결과물들을 현재 경로로 copy해와야 하는 경우가 자주 생깁니다.

Linux상에서 해당 작업을 할 경우에 절대 경로, 혹은 현재 workspace 기준 상대 경로로 접근하기가 쉬운데, 이 경우 job의 PATH가 바뀔 시 code 수정을 다시 해줘야 하는 불편함이 있습니다.

이를 편하게 하기 위해 Jenkins에서는 copyArtifacts라는 plugin을 제공합니다.

How to use copyArtifacts

Install copyArtifacts plugin

  1. Jenkins web의 왼쪽 상단 menu에서 “Jenkins 관리” 선택

  2. System Configuration menu에서 “플러그인 관리” 선택

  3. “설치 가능” 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


Reference

Leave a comment