[英]Jenkins - Username and Password to checkout git in Jenkinsfile (groovy)
[英]How to set up a Jenkins item using Jenkinsfile, to checkout from git to USS, build, test and deploy?
我正在尋找一個使用Jenkinsfile從git簽出,在z / OS上構建和部署的示例?
我的Zenkins使用z / OS插件在Linux服務器上運行。
尋找有關為z / OS設置Jenkinsfile的最佳實踐。
這是一個示例管道腳本,您可以使用它在z / OS上使用Jenkins從服務器從Git檢出代碼-
def scmvars = checkout([$class: 'GitSCM', branches: [[name: 'master']], doGenerateSubmoduleConfigurations: false, extensions: [],gitTool: 'GitDBB', submoduleCfg: [], userRemoteConfigs: [[credentialsId: ‘<cred>’ url: ‘<repo>’]]])
您也可以使用scmvars.GIT_COMMIT等引用git_commit等var。 這將簽出到USS目錄中,然后您可以調用Java構建腳本。
gitTool是指在ASCII和EBCDIC之間進行轉換的腳本,它是在Jenkins Global Tool配置下定義的。 它包含iconv腳本以轉換git命令。 我附上了一個名為git-jenkins.sh的示例-
#! /bin/sh
if test -n "$GIT_SSH" ; then
dbbtmp=~/${JOB_NAME}@dbb
if ! test -d "$dbbtmp" ; then
mkdir $dbbtmp
createdDbbTmp=true
fi
cat $GIT_SSH | iconv -f utf-8 -T -t IBM-1047 > $dbbtmp/git.ssh.sh
export GIT_KEY=$(cat $dbbtmp/git.ssh.sh | grep ssh | sed "s/key.*/key/" | sed "s/.* .//")
cat $GIT_KEY | iconv -f utf-8 -T -t IBM-1047 > $dbbtmp/git.ssh.key
rm -f $GIT_SSH
cp $dbbtmp/git.ssh.sh $GIT_SSH
chmod 700 $GIT_SSH
rm -f $GIT_KEY
cp $dbbtmp/git.ssh.key $GIT_KEY
chmod 600 $GIT_KEY
if test "$createdDbbTmp" = true ; then
rm -rf $dbbtmp
fi
fi
git "$@" | iconv -f ibm-1047 -t ibm-1047
請確保您以上述方式通過FTP向上轉換了上述腳本,以轉換為EBCDIC。 或在USS中將其標記為ASCII。 可以在https://www.ibm.com/support/knowledgecenter/SS6T76_1.0.2/jenkinsintegration.html上找到有關在配置Jenkins遠程代理時如何使用Shell腳本的說明,請從此處注意以下內容:-Shell腳本要求代理的Java選項包括“ -Dfile.encoding = utf-8”-遵循“節點屬性:檢查”工具位置”部分中概述的步驟,以使代理使用腳本。
對於構建-我使用以下命令運行構建groovy腳本來構建文件(在我的情況下為Cobol)-
println RemotingDiagnostics.executeGroovy("""
def command = '$groovyt' + '$classp' + '$scriptname' + '$parm'
println command
def p = command.execute()
p.waitFor()
println p.in.text
""", Jenkins.instance.slaves.find { it.name == node }.channel)
}
希望這些樣本對您有所幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.