# Дополнительные возможности

-   `timestamp()`  печатает время выполнения каждого шага
-   `buildDiscard` задает параметры хранения информации о сборке
-   `timeout` задает время ожидания для сборки, используется для того чтобы прервать сборку при зависании.

```groovy
pipeline {
    agent any
    options {
        timestamps()
        buildDiscarder logRotator(daysToKeepStr: '3',
                                  numToKeepStr: '3' )
        /* All Project: pipeline
           Timeout set to expire in 20 min */
        timeout(time: 20, unit: 'MINUTES')
    }
    stages {
        stage('Build') {
            options {
                /* Stage: Build
                   Timeout set to expire in 1 min 0 sec  */
                timeout(time: 1, unit: 'MINUTES')
            }
            steps {
                echo "build ${env.BUILD_ID} on ${env.JENKINS_URL}"
                /* Sleeping for 1 min 40 sec */
                sleep 100
            }
        }
    }
}
```

-   `buildDiscarder` - сохранять артефакты и логи для определенного числа последних запусков конвейера
-   `checkoutToSubdirectory` - выполняет автоматическую проверку системы управления версиями в подкаталоге рабочей области
-   `disableConcurrentBuilds` - запретить одновременное выполнение конвейера
-   `disableResume` не позволяет конвейеру возобновить работу после перезапуска контроллера.
-   `newContainerPerStage` - Используется с агентом верхнего уровня docker или dockerfile. Если указано, каждый этап будет запускаться в новом экземпляре контейнера на том же узле, а не все этапы, выполняемые в одном экземпляре контейнера.
-   `overrideIndexTriggers` -  Позволяет переопределить стандартную обработку триггеров индексации ветвей.
-   `quietPeriod` - Установите период молчания в секундах для конвейера, переопределив глобальное значение по умолчанию. 
-   `retry`  В случае сбоя повторите попытку запуска всего конвейера указанное количество раз. 
-   `skipDefaultCheckout`   По умолчанию в директиве агента пропускать извлечение кода из системы управления версиями. 
-   `skipStagesAfterUnstable`  Пропускайте этапы после того, как состояние сборки изменилось на НЕСТАБИЛЬНЫЙ
-   `timeout`  установите период ожидания для запуска конвейера, по истечении которого Дженкинс должен прервать конвейер. 
-   `timestamps` Добавьте ко всему выводу на консоль, время для действий.

-   **buildDiscarder**
    
```groovy
options { buildDiscarder(logRotator(numToKeepStr: '1')) }
```
        
-   **checkoutToSubdirectory**
    
```groovy
  options { checkoutToSubdirectory('foo') }
```
        
-   **disableConcurrentBuilds**
    
```groovy
  options { disableConcurrentBuilds() }
```
        
-   **disableResume**
    
```groovy
  options { disableResume() }
```
        
-   **overrideIndexTriggers**
    
```groovy
  options { overrideIndexTriggers(true) }
```
        

-   **preserveStashes**
    
```groovy
  options { preserveStashes(buildCount: 5) }
```
        
-   **quietPeriod**
    
```groovy
  options { quietPeriod(30) }
```
        
-   **retry**
    
```groovy
  options { retry(2) }
```
        
-   **skipDefaultCheckout**
    
```groovy
  options { skipDefaultCheckout() }
```
        
-   **skipStagesAfterUnstable**
    
```groovy
  options { skipStagesAfterUnstable() }
```
        
-   **timeout**
```groovy
  options { timeout(time: 1, unit: 'HOURS') }
```
        
-   **timestamps**
    
```groovy
  options { timestamps() }
```
        
-   **parallelsAlwaysFailFast**
    
```groovy
  options { parallelsAlwaysFailFast() }
```