def confrepo = 'http://gogs.srt/BaseALT/autojen.git' folder('samba') { displayName('Samba Team') description('Jobs for Samba AD DC testing and deployment') views { listView('Testing') { description('Samba AD DC tests') filterBuildQueue() filterExecutors() columns { status() name() buildButton() } jobs { name('jenkins-krb5-sisyphus-1x1') name('jenkins-samba-1x3') name('jenkins-samba-2x2') name('jenkins-samba-3x3') name('jenkins-samba-8sp-1x3-pub') name('jenkins-samba-8sp-3x3-pub') name('jenkins-samba-9-3x3-pub') name('jenkins-samba-sisyphus-1x3') name('jenkins-samba-sisyphus-1x3-pub') name('jenkins-samba-sisyphus-3x3') name('jenkins-samba-sisyphus-3x3-pub') } } } } def mirrorsDest = '/data/mirrors/alt' def mirrorsSrc = 'mirror.yandex.ru' def platforms = [ 'c8', 'p8', 'p9' ] def elbrusPlatforms = [ 'c8', 'p8', 'p9', 'sisyphus' ] folder('infra') { displayName('Infrastructure') description('Run Jenkins Job DSL to reconfigure master') views { listView('File synchronization') { description('File synchronization') filterBuildQueue() filterExecutors() columns { status() name() buildButton() } jobs { name('sync-c8') name('sync-p8') name('sync-p9') } } listView('Backups') { description('Jobs to backup various artifacts') filterBuildQueue() filterExecutors() columns { status() name() buildButton() } jobs { name('switch-backup') } } listView('etc') { description('Uncategorized jobs') filterBuildQueue() filterExecutors() columns { status() name() buildButton() } jobs { name('configure-jenkins') } } } configure { view -> view / defaultView('File synchronization') } } /* * Job to configure Jenkins job('infra/configure-jenkins') { displayName('Configure Jenkins') description('Apply Jenkins configuration') scm { git { remote { name('origin') url(confrepo) } branch('master') extensions { cleanAfterCheckout() } } } } */ /* * Generate jobs to syncrinize various repos. The process looks like * this: * 1) Checkout this repo; * 2) Run synchronization script with paths set via environment * variables; * 3) Cleanup workspace; */ platforms.each { platform -> job("infra/sync-${platform}") { displayName("Synchronize ALT Linux repos for ${platform}") description('Runs synchronization script on PVE') // The job must be run on pve node label('pve') logRotator { numToKeep(5) } parameters { stringParam('MIRRORS_DEST', mirrorsDest, 'Directory to save repository to') stringParam('MIRRORS_SRC', mirrorsSrc, 'Host to download files from') } scm { git { remote { name('origin') url(confrepo) } branch('master') extensions { cleanAfterCheckout() } } } triggers { cron('H 3,7,9 * * *') } steps { shell('/usr/bin/env MIRRORS_DEST=${MIRRORS_DEST} MIRRORS_SRC=${MIRRORS_SRC} PLATFORM=' + platform + ' /bin/sh ./scripts/sync_alt_repo') } } } job('infra/switch-backup') { displayName('Backup switch configuration') description('Signals switches to dump active configuration to central storage') label('pve') logRotator { numToKeep(5) } scm { git { remote { name('origin') url(confrepo) } branch('master') extensions { cleanAfterCheckout() } } } triggers { cron('* 5 * * *') } steps { shell('echo test') } }