# Синтаксис

`Agent` - указывает, где запускается весь конвейер или конкретный этап. Agent в верхней части блока pipeline должен быть определен обязательно для выполнения. Отдельные директивы agent может быть указана по необходимости в начале отдельных этапов, чтобы указать, где в этих этапах должен выполняться код.

 Параметры для agent:

* `any` - Выполните конвейер или этап для любого доступного агента. 
none - При применении на верхнем уровне блока конвейера глобальный агент не будет выделен для всего выполнения конвейера, и каждый раздел Stage должен содержать свой собственный раздел агента. 
* `label` - Выполните конвейер или этап для агента, доступного в среде Jenkins, с предоставленной меткой. 
* `node` - идентичен label, но у node можно указать дополнительный параметр customWorspace.
* `docker` - выполнить конвейер или этап с заданным контейнером, который будет динамически подготовлен на узле, предварительно настроенном для приема конвейеров на основе Docker
* `dockerfile` - выполнить конвейер или этап с контейнером, созданным из файла Docker, содержащегося в исходном репозитории. 
* `kubernetes` - выполнить конвейер или этап внутри модуля, развернутого в кластере Kubernetes. 
Пример 1: Раздел агента внутри части блока pipeline
```groovy
pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                echo 'Hello Pipeline'
				ws('/tmp/hey') {
			        sh 'pwd'
			    }
            }
        }
    }
}
```
 

Пример 2: Раздел агента внутри stage

```groovy
pipeline {
    agent none
    stages {
        stage('Build') {
            agent any
            steps {
                echo 'Helo Pipeline'
            }
        }
        stage('Test') {
            agent any
            steps {
                echo 'Test'
            }
        }
    }
}
```