Триггер ежечасно создается из сценария Jenkinsfile

Есть ли способ запустить задание Дженкинса каждый час, используя синтаксис сценария сценария Jenkinsfile?

Я видел примеры с использованием декларативного синтаксиса, но ни один из них не использовал синтаксис конвейера.

Пример декларативного синтаксиса

pipeline {
    agent any

    triggers {
        cron '@daily'
    }

   ...
}

Ответ 1

Вы можете использовать этот фрагмент для Scripted pipeline syntax:

properties(
    [
        ...  , // other properties that you have
        pipelineTriggers([cron('0 * * * *')]),
    ]
)

Ссылка на свойства здесь. Вы можете выполнить поиск по строке "pipeTriggers" и выяснить, что триггерами для сборки могут быть, например, артефакт или что-то еще из этого списка (извлечено 2019-03-23 из связанной страницы документа):

$class: 'ArtifactoryTrigger'
$class: 'AssemblaBuildTrigger'
bitBucketTrigger
bitbucketPush
$class: 'BuildResultTrigger'
$class: 'CIBuildTrigger'
$class: 'CodingPushTrigger'
$class: 'CronFolderTrigger'
$class: 'DeployDbTrigger'
$class: 'DockerHubTrigger'
$class: 'DosTrigger'
$class: 'ElOyente'
$class: 'FanInReverseBuildTrigger'
$class: 'FeatureBranchAwareTrigger'
$class: 'FilesFoundTrigger'
$class: 'FogbugzStatePoller'
$class: 'FolderContentTrigger'
GenericTrigger
gerrit
$class: 'GhprbTrigger'
$class: 'GitBucketPushTrigger'
githubBranches
githubPullRequests
githubPush
gitee
$class: 'GogsTrigger'
issueCommentTrigger
$class: 'IvyTrigger'
$class: 'JiraChangelogTrigger'
$class: 'JiraCommentTrigger'
$class: 'KanboardQueryTrigger'
$class: 'MailCommandTrigger'
$class: 'MavenDependencyUpdateTrigger'
$class: 'NugetTrigger'
p4Trigger
$class: 'PeriodicFolderTrigger'
$class: 'PollMailboxTrigger'
$class: 'PullRequestBuildTrigger'
$class: 'QuayIoTrigger'
$class: 'RemoteBuildTrigger'
upstream
$class: 'RundeckTrigger'
<code>scm</code>
$class: 'SelfieTrigger'
$class: 'SpoonTrigger'
$class: 'SqsBuildTrigger'
$class: 'TeamPRPushTrigger'
$class: 'TeamPushTrigger'
cron
$class: 'URLTrigger'
snapshotDependencies
$class: 'io.relution.jenkins.awssqs.SQSTrigger'
$class: 'io.relution.jenkins.scmsqs.SQSTrigger'
$class: 'org.cloudbees.literate.jenkins.promotions.PromotionTrigger'
$class: 'org.jenkinsci.plugins.deploy.weblogic.trigger.DeploymentTrigger'
$class: 'org.jenkinsci.plugins.deployment.DeploymentTrigger'

Больше информации о скриптовом пути здесь (пример из другого вопроса). Документация, которая охватывает декларативный конвейер, находится здесь.

Ответ 2

Из примера документации:

Jenkinsfile (Declarative Pipeline)

pipeline {
    agent any
    triggers {
        cron('0 12 * * 1-5')
    }
    stages {
        stage('Example') {
            steps {
                echo 'Hello World'
            }
        }
    }
}

Ответ 3

Правильная версия находится в "декларативном трубопроводе" Jenkins:

pipeline {
    agent any
    triggers {
        cron('H */4 * * 1-5')
    }
...
}