簡體   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