[CI/CD] Jenkins Pipeline artifact 활용 방법 #5

이전 글에서 구축한 뛰어난 artifact 생성 방법에 이어, 이번에는 그러한 artifact를 다른 파이프라인에서 손쉽게 활용하는 방법을 알아보겠습니다. 생성된 artifact를 효과적으로 공유하고 재사용함으로써 프로젝트의 효율성을 한 단계 업그레이드할 수 있는 방법을 함께 살펴보도록 하겠습니다.


#9. 다른 파이프라인에서 활용하기 위한 Artifact 생성 및 특정 파일 지정 방법

다른 파이프라인에서 확장자가 ‘apk’인 파일들을 효과적으로 활용하고자 할 때, 아래와 같은 파이프라인 스크립트를 작성하여 원하는 작업을 수행할 수 있다. 이 스크립트는 생성된 ‘apk’ 파일들을 감지하고, 해당 파일들을 추출하여 원하는 작업을 자동화하는 방법을 제시한다.

stage('detect apk') {
    steps {
        catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
            script {
                dir('/path/your/directory') {
                    try {
                        archiveArtifacts artifacts: '**/*.apk', allowEmptyArchive: true
                    } catch (Exception e) {
                    }
                }
            }
        }
    }
 }

이렇게하면 내가 지정한 폴더의 apk들만 artifact 로 모여있게 된다.
그럼 이제 이 apk를 다른 파이프라인에서 어떻게 활용할지 알아보도록 하자.

#10. 이전 파이프라인에서 생성된 apk 활용하기

  • 다음은 앞서 생성된 apk를 새로운 파이프라인 스크립트에서 활용하는 예시이다.
stage('get apk') {
    steps {
        catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
            script {
                dir('/path/your/directory') { 
                    try {
                        copyArtifacts(projectName: '이전 파이프라인 이름', filter: "*/*.apk", selector: lastSuccessful()) // selector 에는 어떠한 빌드에서 가져올 것인지 적어주면 된다.
                     } catch (Exception e) {
                     }
                 }
            }
        }
    }
}
  • 이렇게하면 현재 파이프라인 내부에 artifact로 디렉토리가 생성되고, 내가 가져온 파일들이 들어가게 된다. 이를 자유롭게 활용해 원하는 테스트를 진행 할 수 있다.


Artifact를 효과적으로 활용하여 다른 파이프라인에서 원하는 작업을 자동화하는 방법을 살펴보았습니다. 이렇게 구축한 스마트한 파이프라인은 프로젝트의 생산성을 높이고, 작업을 효율적으로 관리할 수 있는 새로운 가능성을 여는 것입니다. 지금까지의 노력과 배운 것을 토대로 더 나은 개발 환경을 만들어 나가는 여정을 함께 하기를 기대합니다. 감사합니다.

Leave a Comment