Git 在Jenkins中执行远程脚本

Git 在Jenkins中执行远程脚本,git,shell,jenkins,Git,Shell,Jenkins,我为jenkins执行了以下shell脚本: #!/bin/bash ssh user@perftest03 -f '~/setup_environment.sh load/LoadConfig.xml' 根据一天中的时间或詹金斯想要什么,或者据我所知,脚本执行部分或更多脚本,但总是在完成之前退出。以下是两个不同的日志,它们具有相同的执行、相同的脚本,并且没有任何更改: Started by user Andreas Joelsson [EnvInject] - Loading node en

我为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

所以一个运行git show ref--verify--quiet refs/heads/develope并继续,而另一个停止,我也会停止更改目录和事件打印输出,这取决于服务器的情绪,我让它工作过一次,但显然是一些随机元素,我找不到

下面是shell脚本中停止执行的部分(它会继续执行更长的时间,但我不想让页面被淹没)

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

我已经检查了插件,但它似乎已损坏/无法正确设置

#!/bin/bash
ssh user@perftest03 '~/setup_environment.sh load/LoadConfig.xml'
解决了这个问题,在谷歌搜索之后,出于某种原因,我认为我需要-f标志才能工作。在错误的方向上寻找答案

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'
#!/bin/bash
ssh user@perftest03 '~/setup_environment.sh load/LoadConfig.xml'