在 Jenkins 管道中执行 gcloud 命令

Executing gcloud command in Jenkins pipeline

我正在尝试 运行 Jenkins 声明式管道中的 gcloud 命令,就像下面的示例一样:

pipeline {
    agent any

   stages {
      stage('Run gcloud version') {

         steps {
            sh 'gcloud --version'           
         }
      }
   }
}

我下载了 "GCloud SDK Plugin" 并像这样配置它(在 Jenkins 的 "Global Tool Configuration" 中):

但是当我尝试使用上述 Jenkinsfile 构建管道时,我在管道中遇到 'gcloud: not found' 错误。

我能够 运行 使用以下 Jenkins 文件的命令:

pipeline {
   agent any

stages {
    stage('Run gcloud') {

        steps {
            withEnv(['GCLOUD_PATH=/var/jenkins_home/google-cloud-sdk/bin']) {
                sh '$GCLOUD_PATH/gcloud --version'
            }


         }
      }
   }
}

注意:我在 kubernetes 中 运行ning Jenkins,所以首先我必须在 Jenkins pod 中安装 gcloud sdk

我是 运行 容器中的 Jenkins 2.176.2,GCloud 插件无法在从属(代理)容器中安装 SDK。 我在部署代理时使用 docker 文件来安装它:

RUN echo "deb http://packages.cloud.google.com/apt cloud-sdk-stretch main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list \
    && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - \
    && apt-get update -y && apt-get install google-cloud-sdk -y \
    && PATH=$PATH:/root/google-cloud-sdk/bin