Как настроить элемент Jenkins с помощью Jenkinsfile, чтобы получить доступ от git к USS, собрать, протестировать и развернуть? - PullRequest
0 голосов
/ 17 октября 2018

Я ищу пример использования Jenkinsfile для извлечения из git, build и deploy в z / OS?

У меня работает Jenkins на сервере Linux с плагинами z / OS.

В поисках рекомендаций по настройке Jenkinsfile для z / OS.

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

Вот пример сценария конвейера, который вы можете использовать для извлечения кода из 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)
 }

Надеюсь, эти примеры помогут!

0 голосов
/ 17 октября 2018

Конвейерный скрипт Jenkinsfile - отличный код.Groovy по существу интерпретируется как Java, а Java полагается на JVM, которая не зависит от ОС.

Синтаксис конвейера - это Groovy Domain Specific Language (DSL)

Если у вас установлен конвейерный набор плагинов,Вы должны быть в состоянии следовать документации здесь и здесь , чтобы достичь всего, что вам нужно.

...