Table of Contents

Тут я фиксирую для себя сведения о Jenkins (версии 2 и последующих).

Терминология

Синтаксис конвейеров Jenkins

Jenkins 2 поддерживает два варианта синтаксиса описания конвейеров (Jenkinsfile).

Сценарный синтаксис

Грубо говоря - описание конвейера представляет собой скрипт на языке Groovy.
Сценарный синтаксис более функционален, по сравнению с декларативным и позвоялет создавать максимально гибкие конвейеры.
Визуально сценарный конвейер можно определить по конструкциям вида:

node('worker') {
   stage('Source') {
   ...
   ...

Декларативный синтаксис

Декларативный способ описания конвейера заключается в объявлении состояний и ожидаемых результатов.
Декларативный синтаксис напоминает web-интерфейс с заполняемыми формами. Если каких-то необходимых действий не предусмотрено, то их придется дописывать.
Описание конвейера в декларативном стиле начинается так:

pipeline {
   agent {label:'worker'}
   stages {
      stage('Source') {
      ...
      ...

Синтаксис описания шагов конвейера Jenkins

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

Варианты синтаксиса шагов конвейера

Полный вариант синтаксиса:

git([branch: 'test', url: 'http://github.com/brentlaster/gradle-greetings.git'])

Допускается запись без скобок:

git branch: 'test', url: https://github.com/brentlaster/gradle-greetings.git

Обязательным является только именованный параметр url, поэтому допускается еще более упрощенная запись:

git 'https://github.com/brentlaster/gradle-greetings.git'

Если именованный параметр не требуется, то параметром по умолчанию является объект сценария:

bat ([script: 'echo hi'])

или

bat 'echo hi'