Jenkinsfile이 아닌 Jenkins에서 Jenkins 파이프라인에 대한 범위가 지정된 환경 변수를 설정합니다.

Jenkinsfile이 아닌 Jenkins에서 Jenkins 파이프라인에 대한 범위가 지정된 환경 변수를 설정합니다.

파이프라인 스크립트에서 읽을 수 있도록 빌드 구성으로 범위가 지정된 Jenkins에 중요하지 않은 데이터를 저장하는 방법이 있습니까?

새로운 Octopus Deploy 서버로 마이그레이션 중이며 Jenkinsfile은 다음과 같습니다.

pipeline {
  environment {
    OCTOPUS_CLI_SERVER = "https://octopus.example.com"
    OCTOPUS_CLI_API_KEY = credentials("Octopus_Deploy_ApiKey")
  }
  // ...
}

OCTOPUS_CLI_SERVERJenkins 자격 증명 관리자를 통해 중앙에서 API 키를 업데이트할 수 있지만 URL이 하드 코딩되어 있으므로 모든 분기에서 변경 사항을 편집하고 커밋해야 합니다 . 이것을 변경하는 동안 새 값을 하드 코딩하는 것보다 더 좋은 방법이 있는지 궁금합니다.

~할 수 있었다자격 증명 관리자에 Octopus 서버 URL을 저장하고 동일한 방식으로 액세스합니다. 하지만 그러면 해당 값이 로그에서 수정되어 성가실 수 있습니다. 이상적으로는 내가 찾고 있는 것이 여러 프로젝트에 대해 서로 다른 가치를 가질 수 있습니다. 예를 들어 프로젝트 A와 프로젝트 B 모두 "PUBLIC_DOMAIN"이라는 변수를 읽을 수 있지만 하나는 "a.example.com"을 가져오고 다른 하나는 "b.example.com"을 가져옵니다.

Octopus Deploy가 우리가 수행하는 변경 사항이기 때문에 언급하고 있지만 이 질문은 Jenkins 파이프라인에서 액세스하는 모든 데이터에 적용될 수 있으며 이는 Octopus Deploy에만 국한되지 않습니다.

답변1

이를 수행하는 방법은 거의 무제한입니다. 마음속에 떠오르는 세 가지는 다음과 같습니다.

  • 당신은Jenkins 파이프라인 공유 라이브러리중앙 위치에 구성 값을 저장합니다.

  • 값을 원격 파일이나 저장소에 저장하고 파이프라인이 원격 파일이나 저장소의 파일에서 값을 읽도록 할 수 있습니다.

  • 파이프라인이 HTTP REST API를 통해 다른 서버에서 값을 가져오도록 할 수 있습니다.

관련 정보