【问题标题】:Jenkins how to pass GIT_BRANCH parameter in my remote shell scriptJenkins 如何在我的远程 shell 脚本中传递 GIT_BRANCH 参数
【发布时间】:2019-07-05 14:08:58
【问题描述】:

实际上,我在构建后操作下的 shell 脚本中需要 GIT_BRANCH 参数,该脚本将在我的远程 ssh 机器上运行脚本

#!/bin/bash

echo "Branch Name=>" $GIT_BRANCH

if [ $GIT_BRANCH == 'origin/master' ] then   
   DOCKERFILE_NAME='Dockerfile.master'    docker build -f
   $DOCKERFILE_NAME -t master_image:v1 .
elif [ $GIT_BRANCH=='origin/development' ] then   
   DOCKERFILE_NAME='Dockerfile.development'    docker build -f
   $DOCKERFILE_NAME -t development_image:v1 .
else
   echo "branch cannot be handle"
fi

echo "DOCKERFILE NAME:"$DOCKERFILE_NAME

【问题讨论】:

  • 如果您通过 ssh 连接到远程服务器,您也可以附加一些环境变量 - 这需要对 ssh 服务器配置进行一些更改。请参阅stackoverflow.com/questions/4409951/…,如果您使用的是本机 ssh,您可以执行类似的操作,然后 ssh user@host "GIT_BRANCH=${GIT_BRANCH}"。你没试过,但可以工作。否则,请更新您的问题并提供有关构建的更多详细信息。

标签: bash shell jenkins


【解决方案1】:

您知道远程计算机上没有设置 GIT_BRANCH,您需要将其作为脚本的参数传递。 脚本:

#!/bin/bash
GIT_BRANCH="$1"
echo "Branch Name=>" $GIT_BRANCH

if [ $GIT_BRANCH == 'origin/master' ] then   
   DOCKERFILE_NAME='Dockerfile.master'    docker build -f
   $DOCKERFILE_NAME -t master_image:v1 .
elif [ $GIT_BRANCH=='origin/development' ] then   
   DOCKERFILE_NAME='Dockerfile.development'    docker build -f
   $DOCKERFILE_NAME -t development_image:v1 .
else
   echo "branch cannot be handle"
fi

echo "DOCKERFILE NAME:"$DOCKERFILE_NAME

然后像下面这样运行它

ssh ${remote_address} ${script_path} $GIT_BRANCH

对于Ex,远程地址是10.0.0.1,脚本路径是/var/lib/test.sh,

ssh 10.0.0.1 /var/lib/test.sh $GIT_BRANCH

【讨论】:

    猜你喜欢
    • 2021-01-11
    • 1970-01-01
    • 1970-01-01
    • 2020-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多