diff --git a/theforeman.org/pipelines/release/foreman-x-develop-release.groovy b/theforeman.org/pipelines/release/foreman-x-develop-release.groovy index 158930fe..7978232d 100644 --- a/theforeman.org/pipelines/release/foreman-x-develop-release.groovy +++ b/theforeman.org/pipelines/release/foreman-x-develop-release.groovy @@ -17,6 +17,10 @@ pipeline { buildDiscarder(logRotator(daysToKeepStr: '7')) } + triggers { + upstream(upstreamProjects: source_project_name, threshold: hudson.model.Result.SUCCESS) + } + stages { stage('Build Package') { parallel { diff --git a/theforeman.org/pipelines/release/source/foreman-installer.groovy b/theforeman.org/pipelines/release/source/foreman-installer.groovy index 97cbd3bc..d4303854 100644 --- a/theforeman.org/pipelines/release/source/foreman-installer.groovy +++ b/theforeman.org/pipelines/release/source/foreman-installer.groovy @@ -34,14 +34,6 @@ pipeline { } } post { - success { - build( - job: "${project_name}-${git_ref}-package-release", - propagate: false, - wait: false - ) - } - failure { notifyDiscourse(env, "${project_name} source release pipeline failed:", currentBuild.description) } diff --git a/theforeman.org/pipelines/release/source/foreman-selinux.groovy b/theforeman.org/pipelines/release/source/foreman-selinux.groovy index 46b54949..415ab8d8 100644 --- a/theforeman.org/pipelines/release/source/foreman-selinux.groovy +++ b/theforeman.org/pipelines/release/source/foreman-selinux.groovy @@ -37,14 +37,6 @@ pipeline { } } post { - success { - build( - job: "${project_name}-${git_ref}-package-release", - propagate: false, - wait: false - ) - } - failure { notifyDiscourse(env, "${project_name} source release pipeline failed:", currentBuild.description) } diff --git a/theforeman.org/pipelines/release/source/foreman.groovy b/theforeman.org/pipelines/release/source/foreman.groovy index 9943a0bc..26e41f59 100644 --- a/theforeman.org/pipelines/release/source/foreman.groovy +++ b/theforeman.org/pipelines/release/source/foreman.groovy @@ -117,15 +117,6 @@ pipeline { } post { - success { - build( - job: "${project_name}-${git_ref}-package-release", - propagate: false, - wait: false - ) - - } - failure { notifyDiscourse(env, "${project_name} source release pipeline failed:", currentBuild.description) } diff --git a/theforeman.org/pipelines/release/source/hammer-cli-x.groovy b/theforeman.org/pipelines/release/source/hammer-cli-x.groovy index b124d652..cfbc70ac 100644 --- a/theforeman.org/pipelines/release/source/hammer-cli-x.groovy +++ b/theforeman.org/pipelines/release/source/hammer-cli-x.groovy @@ -35,14 +35,6 @@ pipeline { } } post { - success { - build( - job: "${project_name}-${git_ref}-package-release", - propagate: false, - wait: false - ) - } - failure { notifyDiscourse(env, "${project_name} source release pipeline failed:", currentBuild.description) } diff --git a/theforeman.org/pipelines/release/source/katello.groovy b/theforeman.org/pipelines/release/source/katello.groovy index ce458255..99bb8ae1 100644 --- a/theforeman.org/pipelines/release/source/katello.groovy +++ b/theforeman.org/pipelines/release/source/katello.groovy @@ -135,14 +135,6 @@ pipeline { } post { - success { - build( - job: "${project_name}-${git_ref}-package-release", - propagate: false, - wait: false - ) - } - failure { notifyDiscourse(env, "${project_name} source release pipeline failed:", currentBuild.description) } diff --git a/theforeman.org/pipelines/release/source/smart-proxy.groovy b/theforeman.org/pipelines/release/source/smart-proxy.groovy index 5746a11f..097ae406 100644 --- a/theforeman.org/pipelines/release/source/smart-proxy.groovy +++ b/theforeman.org/pipelines/release/source/smart-proxy.groovy @@ -1,9 +1,9 @@ pipeline { - agent any + agent none options { timestamps() - timeout(time: 2, unit: 'HOURS') + timeout(time: 1, unit: 'HOURS') ansiColor('xterm') buildDiscarder(logRotator(daysToKeepStr: '7')) } @@ -18,13 +18,22 @@ pipeline { values '2.7.6', '3.0.4', '3.1.0' } } + environment { + BUNDLE_WITHOUT = 'development' + } stages { stage("Clone repository") { steps { git url: git_url, branch: git_ref } } - stage("Test Ruby") { + stage('Install dependencies') { + steps { + bundleInstall(ruby) + archiveArtifacts(artifacts: 'Gemfile.lock') + } + } + stage('Run tests') { environment { // ci_reporters gem CI_REPORTS = 'jenkins/reports/unit' @@ -33,13 +42,20 @@ pipeline { MINITEST_REPORTERS_REPORTS_DIR = 'jenkins/reports/unit' } steps { - run_test(ruby: env.ruby) + bundleExec(ruby, 'rake jenkins:unit') + } + post { + always { + junit testResults: 'jenkins/reports/unit/*.xml' + } } } } } } stage('Build and Archive Source') { + agent any + steps { dir(project_name) { git url: git_url, branch: git_ref @@ -53,37 +69,17 @@ pipeline { sourcefile_paths = generate_sourcefiles(project_name: project_name, source_type: source_type) } } + post { + always { + deleteDir() + } + } } } post { - success { - build( - job: "${project_name}-${git_ref}-package-release", - propagate: false, - wait: false - ) - } - failure { notifyDiscourse(env, "${project_name} source release pipeline failed:", currentBuild.description) } - - cleanup { - deleteDir() - } - } -} - -def run_test(args) { - def ruby = args.ruby - - try { - sh "cp config/settings.yml.example config/settings.yml" - bundleInstall(ruby, "--without=development") - archiveArtifacts(artifacts: 'Gemfile.lock') - bundleExec(ruby, "rake jenkins:unit --trace") - } finally { - junit(testResults: 'jenkins/reports/unit/*.xml') } } diff --git a/theforeman.org/pipelines/test/smart-proxy.groovy b/theforeman.org/pipelines/test/smart-proxy.groovy index c391a0d6..79ffd9a0 100644 --- a/theforeman.org/pipelines/test/smart-proxy.groovy +++ b/theforeman.org/pipelines/test/smart-proxy.groovy @@ -1,13 +1,10 @@ pipeline { agent none + options { timeout(time: 1, unit: 'HOURS') ansiColor('xterm') } - environment { - BUNDLE_JOBS = 4 - BUNDLE_RETRY = 3 - } stages { stage('Rubocop') { @@ -59,19 +56,18 @@ pipeline { BUNDLE_WITHOUT = 'development' } stages { - stage('Setup Git Repos') { + stage("Clone repository") { steps { - script { - git_checkout() - } + git branch: git_branch, url: 'https://github.com/theforeman/smart-proxy' } } stage('Install dependencies') { steps { bundleInstall(ruby) + archiveArtifacts(artifacts: 'Gemfile.lock') } } - stage('Run Tests') { + stage('Run tests') { environment { // ci_reporters gem CI_REPORTS = 'jenkins/reports/unit' @@ -91,7 +87,6 @@ pipeline { } post { always { - archiveArtifacts artifacts: 'Gemfile.lock' deleteDir() } }