Вот пример сценария конвейера, который вы можете использовать для извлечения кода из Git с помощью ведомого Jenkins в z / OS -
def scmvars = checkout([$class: 'GitSCM', branches: [[name: 'master']], doGenerateSubmoduleConfigurations: false, extensions: [],gitTool: 'GitDBB', submoduleCfg: [], userRemoteConfigs: [[credentialsId: ‘<cred>’ url: ‘<repo>’]]])
Вы также можете ссылаться на переменные типа git_commit и т. Д. С помощью scmvars.GIT_COMMIT и так далее.Это вернется в каталог 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.Или пометьте его как ASCII в USS.Инструкции по использованию сценария оболочки при настройке удаленного агента Jenkins можно найти по адресу https://www.ibm.com/support/knowledgecenter/SS6T76_1.0.2/jenkinsintegration.html. Обратите внимание на следующее: - Для сценария оболочки требуется, чтобы параметры 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)
}
Надеюсь, эти примеры помогут!