[jenkins] Jenkins에서 환경 변수를 설정하는 방법은 무엇입니까?

나는 다음과 같은 것을 할 수 있기를 원한다.

AOEU=$(echo aoeu)

Jenkins를 설정했습니다 AOEU=aoeu.

Jenkins 의 환경 변수 섹션은 그렇게하지 않습니다. 대신에을 설정합니다 AOEU='$(echo aoeu)'.

Jenkins가 쉘 명령을 평가하고 출력을 환경 변수에 할당하도록하려면 어떻게해야합니까?

결국 작업 실행자를 다른 스크립트로 전달하거나 다른 스크립트에서 사용할 수있는 환경 변수에 할당 할 수 있기를 원합니다.



답변

다음과 같은 방법으로 EnvInject 플러그인 을 통해 수행 할 수 있습니다 .

  1. 다음을 실행하는 “쉘 실행”빌드 단계를 작성하십시오.

    echo AOEU=$(echo aoeu) > propsfile
    
  2. 환경 변수 주입 빌드 단계를 작성하고 “속성 파일 경로”를로 설정하십시오 propsfile.

참고 :이 플러그인은 대부분 파이프 라인 플러그인과 호환되지 않습니다.


답변

가장 간단한 방법

빌드 시작시 EnvInject 플러그인 을 사용 하여 환경 변수를 주입 할 수 있습니다 . 예를 들면 다음과 같습니다.

'빌드 환경'-> '빌드 프로세스에 환경 변수 삽입'-> '속성 컨텐츠'아래에 key = value (bash OK!)를 추가하십시오.

작동하는지 어떻게 알 수 있습니까?

EnvInject-성공적으로 주입 된 변수


답변

내 경우에는, 내가 추가 할 필요 JMETER_HOME에서 내 로컬 빌드 환경 (Windows 및 Mac)을 방해하지 않을 방식으로, 내 젠킨스 서버 (리눅스)의 모든 프로젝트에서 내 Ant 빌드 스크립트를 통해 할 수 할 수 환경 변수를 build.xml스크립트 . Jenkins 관리-시스템 구성-글로벌 특성 을 통해 환경 변수를 설정하는 것이 가장 쉽고 가장 방해가되지 않는 방법입니다. 플러그인이 필요하지 않습니다.

Jenkins 글로벌 속성 관리


그런 다음 Ant를 통해 환경 변수를 사용할 수 있습니다.

<property environment="env" />
<property name="jmeter.home" value="${env.JMETER_HOME}" />

다음을 추가하여 작동하는지 확인할 수 있습니다.

<echo message="JMeter Home: ${jmeter.home}"/>

어느 생산 :

JMeter 홈 : ~ / .jmeter


답변

Environment Injector 플러그인 을 사용 하여 작업 및 노드 레벨에서 Jenkins의 환경 변수를 설정할 수 있습니다 . 아래에서는 작업 수준에서 설정하는 방법을 보여줍니다.

  1. Jenkins 웹 인터페이스 Manage Jenkins > Manage Plugins에서 플러그인으로 이동하여 설치하십시오.

환경 인젝터 플러그인

  1. 작업 Configure화면으로 이동
  2. 섹션 Add build step에서 찾아서 Build선택Inject environment variables
  3. 원하는 환경 변수를 VARIABLE_NAME = VALUE 패턴으로 설정하십시오. 제 경우에는 USERPROFILE 변수의 값을 변경했습니다

여기에 이미지 설명을 입력하십시오

일부 조건 (예 : 작업 매개 변수)에 따라 새 환경 변수를 정의해야하는 경우이 답변을 참조하십시오 .


답변

이런 식으로 시도해 볼 수 있습니다

stages {
        stage('Build') {
            environment {
                    AOEU= sh (returnStdout: true, script: 'echo aoeu').trim()
                }
            steps {
                sh 'env'
                sh 'echo $AOEU'
            }
        }
    }


답변

EnvInject Plugin 일명 ( Environment Injector Plugin )은 Jenkins 구성에서 환경 변수를 설정하는 몇 가지 옵션을 제공합니다.

선택 Inject environment variables to the build process하면 다음을 얻을 수 있습니다.

  • Properties File Path
  • Properties Content
  • Script File Path

  • Script Content

  • 그리고 마지막으로 Evaluated Groovy script.


Evaluated Groovy script실행 된 명령의 결과에 따라 환경 변수설정할 수 있습니다 .

  • execute방법
    return [HOSTNAME_SHELL: 'hostname'.execute().text,
        DATE_SHELL: 'date'.execute().text,
        ECHO_SHELL: 'echo hello world!'.execute().text
    ]
  • 또는 명시 적 Groovy코드로 :
    return [HOSTNAME_GROOVY: java.net.InetAddress.getLocalHost().getHostName(),
        DATE_GROOVY: new Date()
    ] 

(각 방법에 대한 자세한 내용은 내장 도움말 (?)에서 찾을 수 있습니다.)


불행히도 다음과 같이 할 수는 없습니다 Script Content.

폴더 생성, 파일 복사 등과 같은 환경 설정을 목표로하는 스크립트 파일을 실행합니다. 스크립트 파일 내용을 제공하십시오. 위의 속성 변수를 사용할 수 있습니다. 그러나 스크립트에서 환경 변수를 추가하거나 재정의하더라도 빌드 작업에는 영향을 미치지 않습니다 .


답변

빌드 봉투를 전파 플러그인 은 예를 들어, 새로운 빌드 환경 변수를 추가 할 수 있습니다

Jenkins 빌드-빌드 환경 변수 전파

후속 Propagate 빌드 환경 변수 단계는 이전에 정의 된 환경 변수 값을 대체합니다.