繁体   English   中英

在詹金斯执行远程脚本

[英]Execute remote script in Jenkins

我对jenkins执行以下shell脚本:

#!/bin/bash
ssh user@perftest03 -f '~/setup_environment.sh load/LoadConfig.xml'

根据一天中的时间或詹金斯想要的东西,或者所有的老神,我知道脚本会执行脚本的一部分或更多,但是总是在完成之前退出。 这是两个具有相同执行,相同脚本且没有任何更改的不同日志:

Started by user Andreas Joelsson
[EnvInject] - Loading node environment variables.
Building remotely on linuxdev01 in workspace /home/byggarebob/workspace/Project-Load
[Project-Load] $ /bin/bash /tmp/hudson1526996494849043502.sh
MG_DIRECTORY   ==> /home/user/user
MG_SYMLINK     ==> /home/user/user/RunnerConfig.xml
MGC_DIRECTORY  ==> /home/user/user-config
MGC_REPOSITORY ==> git@git.company.se:test/user-config.git
MGC_BRANCH     ==> develop
MGC_FILE       ==> /home/user/user-config/load/LoadConfig.xml
Changing directory to "/home/user/user-config".
cd /home/user/user-config
git show-ref --verify --quiet refs/heads/develop
Checking if we are in branch develop.
git branch | grep --quiet '* develop'
Finished: SUCCESS

Started by user Andreas Joelsson
[EnvInject] - Loading node environment variables.
Building remotely on linuxdev01 in workspace /home/byggarebob/workspace/Project-Load
[Project-Load] $ /bin/bash /tmp/hudson7204317023088063558.sh
MG_DIRECTORY   ==> /home/user/user
MG_SYMLINK     ==> /home/user/user/RunnerConfig.xml
MGC_DIRECTORY  ==> /home/user/user-config
MGC_REPOSITORY ==> git@git.company.se:test/user-config.git
MGC_BRANCH     ==> develop
MGC_FILE       ==> /home/user/user-config/load/LoadConfig.xml
Changing directory to "/home/user/user-config".
cd /home/user/user-config
git show-ref --verify --quiet refs/heads/develop
Finished: SUCCESS

因此,一个设法运行git show-ref --verify --quiet refs / heads / develop并继续,而另一个则停止在此,我也根据服务器的心情在更改目录和事件打印输出处停止,我它曾经工作过一次,但显然是我找不到的一些随机因素。

这是停止执行的Shell脚本的一部分(持续时间更长,但我不想泛滥页面)

if [ ! -d "$MGC_DIRECTORY" ]; then
    echo "Unable to clone $MGC_REPOSITORY, cannot continue"
    exit 1
else
    echo "Changing directory to \"$MGC_DIRECTORY\"."
    if [ -n $VERBOSE ]; then
        echo "cd $MGC_DIRECTORY"
    fi
    cd $MGC_DIRECTORY
fi

if [ -n $VERBOSE ]; then
    echo "git show-ref --verify --quiet refs/heads/$MGC_BRANCH"
fi
git show-ref --verify --quiet refs/heads/$MGC_BRANCH

if [ $? != 0 ]; then
    echo "No branch found in $MGC_DIRECTORY called $MGC_BRANCH."
    exit 1
fi

echo "Checking if we are in branch $MGC_BRANCH."
if [ -n $VERBOSE ]; then
    echo "git branch | grep --quiet '* $MGC_BRANCH'"
fi
git status | grep --quiet '* $MGC_BRANCH'

我有一个理论,第一个成功的shell命令(返回0)破坏了执行,但是例如,当我们设法更改目录时,一些测试用例就破坏了这一理论。

我已经检查过https://wiki.jenkins-ci.org/display/JENKINS/SSH+Agent+Plugin插件,但它似乎已损坏/无法正确设置。

#!/bin/bash
ssh user@perftest03 '~/setup_environment.sh load/LoadConfig.xml'

解决了它,出于某种原因,在谷歌搜索后,我以为我需要-f标志才能工作。 寻找错误的方向。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM