Jenkins Paramerized Trigger + Copy Artifact


9

릴리스 빌드를 처리하기 위해 Jenkins를 설정하고 있습니다. 릴리스 빌드는 Linux에서 빌드해야하는 일부 바이너리가 포함 된 Windows 설치 프로그램으로 구성됩니다.

여기까지 내가 가진 것입니다 :

  • Windows 부분과 Linux 부분은 별도의 Jenkins 프로젝트로 설정됩니다.
  • Windows 프로젝트는 매개 변수화되어 Subversion 태그를 빌드 및 릴리스합니다.
  • 빌드의 일부로 Windows 프로젝트는 매개 변수화 된 트리거 플러그인을 사용하여 Linux 프로젝트에 대해 동일한 Subversion 태그의 빌드를 트리거 한 다음 Linux 프로젝트 ( 아티팩트 복사 플러그인 사용)에서 아티팩트 를 Windows 프로젝트의 작업 공간으로 복사 합니다. 이들은 Windows 설치 프로그램에 포함될 수 있습니다.

내가 갇힌 곳 : 지금 아티팩트 복사는 마지막으로 성공한 빌드를 복사하도록 설정되어 있습니다. Parameterized Trigger가 트리거 한 정확한 빌드에서 복사하도록 Copy Artifact를 구성하는 것이 더 강력 해 보이지만 그 작업을 수행하는 방법을 알아내는 데 어려움이 있습니다. "빌드 선택기"매개 변수에 대한 옵션이 있는데 이것으로 도움이 될 것으로 생각되지만 설정 방법을 알 수는 없습니다. 빌드에 한 시간이 걸리면 다른 가능성을 맹목적으로 실험하는 것이 다소 고통 스럽습니다. 성공 또는 실패를 찾으려면 두 번).

이것을 어떻게 설정해야합니까? 빌드 선택기는 어떻게 작동합니까?

답변:


11

트리거 된 빌드를 완료하면 TRIGGERED_BUILD_NUMBER_ <작업 이름>이라는 트리거 된 빌드의 빌드 번호로 설정된 새로운 env 변수가 생깁니다. 이를 사용하여 아티팩트를 구체적으로 다시 복사 할 수 있습니다.

  1. Windows 빌드 ( " WindowsBuild ") 는 Parameterized Trigger 플러그인을 사용하여 Linux 빌드 ( " LinuxBuild ")를 호출합니다 .

    이 부분이 있습니다 . 트리거 된 프로젝트가 빌드를 완료하고 Linux 빌드가 실패하면 빌드가 실패 할 때까지 차단 을 확인하십시오 .

  2. 다른 프로젝트 단계 에서 아티팩트 복사의 다음 단계 :

    프로젝트 이름 : LinuxBuild

    어떤 빌드 : 특정 빌드

    빌드 번호 : $ TRIGGERED_BUILD_NUMBER_LinuxBuild (모든 프로젝트 이름에는 a-zA-Z 또는 0-9가 아닌 문자가 _로 대체 됨, 여러 문자가 단일 _로 압축 됨)


"$ TRIGGERED_BUILD_NUMBER_ <downstreamjob>"환경 변수를 수동으로 설정해야합니까? 업스트림 또는 다운 스트림 환경 변수에서 찾을 수 없습니다.
harish

1
"트리거 된 프로젝트가 빌드를 완료 할 때까지 차단"이 선택된 경우 플러그인 위키에서 $ TRIGGERED_BUILD_NUMBER_ <downstreamjob>이 자동으로 설정됩니다.
harish
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.