From 2d866e68792594798380cee4857f5d5537799bad Mon Sep 17 00:00:00 2001 From: Sam Gleske Date: Mon, 21 May 2018 18:41:25 -0700 Subject: [PATCH 01/16] bump jenkins-bootstrap-shared --- jenkins-bootstrap-shared | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jenkins-bootstrap-shared b/jenkins-bootstrap-shared index d1683a4..1682eef 160000 --- a/jenkins-bootstrap-shared +++ b/jenkins-bootstrap-shared @@ -1 +1 @@ -Subproject commit d1683a42e80f0c35ecbf884e10efe0158b8527f6 +Subproject commit 1682eef7564f8af7525e969547f2df1b9599f371 From ac2ae4e2d96fd5bf64f07fb07c2f616ff1f49f45 Mon Sep 17 00:00:00 2001 From: Sam Gleske Date: Mon, 21 May 2018 19:22:20 -0700 Subject: [PATCH 02/16] Adding/removing minimal plugins for new Jenkins This is in support of re-architecting build.gimp.org. --- Vagrantfile | 28 +------------- build.gradle | 2 +- dependencies.gradle | 89 +++++++++++++++++++-------------------------- 3 files changed, 41 insertions(+), 78 deletions(-) diff --git a/Vagrantfile b/Vagrantfile index 06a2004..66ea951 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -5,41 +5,17 @@ # vagrant command. system('./scripts/vagrant-up.sh') -# All Vagrant configuration is done below. The "2" in Vagrant.configure -# configures the configuration version (we support older styles for -# backwards compatibility). Please don't change it unless you know what -# you're doing. Vagrant.configure("2") do |config| - # The most common configuration options are documented and commented below. - # For a complete reference, please see the online documentation at # https://docs.vagrantup.com. - - # Every Vagrant development environment requires a box. You can search for - # boxes at https://vagrantcloud.com/search. config.vm.box = "centos/7" - - # Create a forwarded port mapping which allows access to a specific port - # within the machine from a port on the host machine and only allow access - # via 127.0.0.1 to disable public access config.vm.network "forwarded_port", guest: 8080, host: 8080, host_ip: "127.0.0.1" - - # Share an additional folder to the guest VM. The first argument is - # the path on the host to the actual folder. The second argument is - # the path on the guest to mount the folder. And the optional third - # argument is a set of non-required options. - # config.vm.synced_folder "../data", "/vagrant_data" - config.vm.provider "virtualbox" do |vb| vb.memory = "4096" end config.vm.provision "shell", inline: <<-SHELL - #Download Java from Oracle - [ ! -f /tmp/jdk8.rpm ] && curl -H 'Cookie: oraclelicense=accept-securebackup-cookie' -Lo /tmp/jdk8.rpm http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.rpm - #validate the download from Oracle using official checksum - echo 'cdb016da0c509d7414ee3f0c15b2dae5092d9a77edf7915be4386d5127e8092f /tmp/jdk8.rpm' | sha256sum -c - - #Install Oracle JDK 8 - rpm -i /tmp/jdk8.rpm + # install Java + yum install -y java-1.8.0-openjdk-devel.x86_64 #install Jenkins rpm -i /vagrant/build/distributions/*.rpm #start the Jenkins daemon diff --git a/build.gradle b/build.gradle index f5f32af..5744a19 100644 --- a/build.gradle +++ b/build.gradle @@ -14,7 +14,7 @@ apply from: "${bootstrapHome}/shared.gradle" //version should be the jenkins.war version appended by .1 and increments .1 //every time there's non-jenkins.war version changes to the package. //if upgrading jenkins.war version then it should be reset to .1. -version = '2.107.3.1' +version = '2.107.3.4' description = "Built from ${tokens['PACKAGENAME']} @ ${tokens['COMMIT']}" //Jenkins war and plugin versions diff --git a/dependencies.gradle b/dependencies.gradle index 310636b..f5f9b7f 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -5,82 +5,69 @@ dependencies { //custom plugins (if any) provided by custom-plugins.txt; format: G:A:V@hpi or G:A:V@jpi //get plugins - getplugins 'com.coravy.hudson.plugins.github:github:1.29.0@hpi' - getplugins 'net.hurstfrost.jenkins:avatar:1.2@hpi' - getplugins 'org.jenkins-ci.main:maven-plugin:3.1.2@hpi' - getplugins 'org.jenkins-ci.plugins.icon-shim:icon-shim:2.0.3@hpi' + getplugins 'org.jenkins-ci.plugins.pipeline-stage-view:pipeline-rest-api:2.10@hpi' + getplugins 'org.jenkins-ci.plugins.pipeline-stage-view:pipeline-stage-view:2.10@hpi' + getplugins 'org.jenkins-ci.plugins.workflow:workflow-aggregator:2.5@hpi' getplugins 'org.jenkins-ci.plugins.workflow:workflow-api:2.27@hpi' + getplugins 'org.jenkins-ci.plugins.workflow:workflow-basic-steps:2.7@hpi' + getplugins 'org.jenkins-ci.plugins.workflow:workflow-cps-global-lib:2.9@hpi' getplugins 'org.jenkins-ci.plugins.workflow:workflow-cps:2.53@hpi' + getplugins 'org.jenkins-ci.plugins.workflow:workflow-durable-task-step:2.19@hpi' getplugins 'org.jenkins-ci.plugins.workflow:workflow-job:2.21@hpi' + getplugins 'org.jenkins-ci.plugins.workflow:workflow-multibranch:2.19@hpi' getplugins 'org.jenkins-ci.plugins.workflow:workflow-scm-step:2.6@hpi' - getplugins 'org.jenkins-ci.plugins.workflow:workflow-step-api:2.14@hpi' + getplugins 'org.jenkins-ci.plugins.workflow:workflow-step-api:2.15@hpi' getplugins 'org.jenkins-ci.plugins.workflow:workflow-support:2.18@hpi' - getplugins 'org.jenkins-ci.plugins:all-changes:1.5@hpi' - getplugins 'org.jenkins-ci.plugins:ant:1.8@hpi' getplugins 'org.jenkins-ci.plugins:antisamy-markup-formatter:1.5@hpi' getplugins 'org.jenkins-ci.plugins:apache-httpcomponents-client-4-api:4.5.5-2.0@hpi' + getplugins 'org.jenkins-ci.plugins:authentication-tokens:1.3@hpi' + getplugins 'org.jenkins-ci.plugins:badge:1.4@hpi' getplugins 'org.jenkins-ci.plugins:bouncycastle-api:2.16.2@hpi' - getplugins 'org.jenkins-ci.plugins:build-blocker-plugin:1.7.3@hpi' - getplugins 'org.jenkins-ci.plugins:clamav:0.3@hpi' + getplugins 'org.jenkins-ci.plugins:branch-api:2.0.20@hpi' + getplugins 'org.jenkins-ci.plugins:build-timeout:1.19@hpi' + getplugins 'org.jenkins-ci.plugins:cloudbees-folder:6.4@hpi' getplugins 'org.jenkins-ci.plugins:command-launcher:1.2@hpi' - getplugins 'org.jenkins-ci.plugins:conditional-buildstep:1.3.6@hpi' - getplugins 'org.jenkins-ci.plugins:console-column-plugin:1.5@hpi' + getplugins 'org.jenkins-ci.plugins:config-file-provider:2.18@hpi' getplugins 'org.jenkins-ci.plugins:copyartifact:1.39.1@hpi' + getplugins 'org.jenkins-ci.plugins:credentials-binding:1.16@hpi' getplugins 'org.jenkins-ci.plugins:credentials:2.1.16@hpi' - getplugins 'org.jenkins-ci.plugins:cvs:2.14@hpi' - getplugins 'org.jenkins-ci.plugins:dashboard-view:2.9.11@hpi' - getplugins 'org.jenkins-ci.plugins:description-column-plugin:1.3@hpi' - getplugins 'org.jenkins-ci.plugins:description-setter:1.10@hpi' - getplugins 'org.jenkins-ci.plugins:disk-usage:0.28@hpi' getplugins 'org.jenkins-ci.plugins:display-url-api:2.2.0@hpi' - getplugins 'org.jenkins-ci.plugins:external-monitor-job:1.7@hpi' - getplugins 'org.jenkins-ci.plugins:extra-columns:1.18@hpi' + getplugins 'org.jenkins-ci.plugins:docker-commons:1.13@hpi' + getplugins 'org.jenkins-ci.plugins:docker-workflow:1.17@hpi' + getplugins 'org.jenkins-ci.plugins:durable-task:1.22@hpi' + getplugins 'org.jenkins-ci.plugins:email-ext:2.62@hpi' + getplugins 'org.jenkins-ci.plugins:embeddable-build-status:1.9@hpi' getplugins 'org.jenkins-ci.plugins:git-client:2.7.2@hpi' + getplugins 'org.jenkins-ci.plugins:git-server:1.7@hpi' getplugins 'org.jenkins-ci.plugins:git:3.9.0@hpi' - getplugins 'org.jenkins-ci.plugins:github-api:1.90@hpi' - getplugins 'org.jenkins-ci.plugins:greenballs:1.15@hpi' + getplugins 'org.jenkins-ci.plugins:groovy:2.0@hpi' getplugins 'org.jenkins-ci.plugins:jackson2-api:2.8.11.2@hpi' - getplugins 'org.jenkins-ci.plugins:javadoc:1.4@hpi' - getplugins 'org.jenkins-ci.plugins:jobConfigHistory:2.18@hpi' + getplugins 'org.jenkins-ci.plugins:job-dsl:1.69@hpi' getplugins 'org.jenkins-ci.plugins:jsch:0.1.54.2@hpi' getplugins 'org.jenkins-ci.plugins:junit:1.24@hpi' - getplugins 'org.jenkins-ci.plugins:ldap:1.20@hpi' - getplugins 'org.jenkins-ci.plugins:log-parser:2.0@hpi' getplugins 'org.jenkins-ci.plugins:mailer:1.21@hpi' - getplugins 'org.jenkins-ci.plugins:mapdb-api:1.0.9.0@hpi' - getplugins 'org.jenkins-ci.plugins:matrix-auth:2.2@hpi' getplugins 'org.jenkins-ci.plugins:matrix-project:1.13@hpi' - getplugins 'org.jenkins-ci.plugins:pam-auth:1.3@hpi' - getplugins 'org.jenkins-ci.plugins:parameterized-trigger:2.35.2@hpi' + getplugins 'org.jenkins-ci.plugins:pipeline-build-step:2.7@hpi' + getplugins 'org.jenkins-ci.plugins:pipeline-graph-analysis:1.6@hpi' + getplugins 'org.jenkins-ci.plugins:pipeline-input-step:2.8@hpi' + getplugins 'org.jenkins-ci.plugins:pipeline-milestone-step:1.3.1@hpi' + getplugins 'org.jenkins-ci.plugins:pipeline-multibranch-defaults:1.1@hpi' + getplugins 'org.jenkins-ci.plugins:pipeline-stage-step:2.3@hpi' getplugins 'org.jenkins-ci.plugins:plain-credentials:1.4@hpi' - getplugins 'org.jenkins-ci.plugins:rich-text-publisher-plugin:1.4@hpi' - getplugins 'org.jenkins-ci.plugins:role-strategy:2.8.0@hpi' - getplugins 'org.jenkins-ci.plugins:run-condition:1.0@hpi' - getplugins 'org.jenkins-ci.plugins:saferestart:0.3@hpi' getplugins 'org.jenkins-ci.plugins:scm-api:2.2.7@hpi' + getplugins 'org.jenkins-ci.plugins:scm-filter-branch-pr:0.3@hpi' getplugins 'org.jenkins-ci.plugins:script-security:1.44@hpi' - getplugins 'org.jenkins-ci.plugins:shelve-project-plugin:1.5@hpi' - getplugins 'org.jenkins-ci.plugins:sidebar-link:1.9.1@hpi' - getplugins 'org.jenkins-ci.plugins:ssh-agent:1.15@hpi' getplugins 'org.jenkins-ci.plugins:ssh-credentials:1.13@hpi' - getplugins 'org.jenkins-ci.plugins:ssh-slaves:1.26@hpi' getplugins 'org.jenkins-ci.plugins:structs:1.14@hpi' - getplugins 'org.jenkins-ci.plugins:subversion:2.10.5@hpi' - getplugins 'org.jenkins-ci.plugins:text-finder:1.10@hpi' getplugins 'org.jenkins-ci.plugins:token-macro:2.5@hpi' - getplugins 'org.jenkins-ci.plugins:translation:1.16@hpi' - getplugins 'org.jenkins-ci.plugins:windows-slaves:1.3.1@hpi' getplugins 'org.jenkins-ci.ui:ace-editor:1.1@hpi' + getplugins 'org.jenkins-ci.ui:handlebars:1.1.1@hpi' getplugins 'org.jenkins-ci.ui:jquery-detached:1.2.1@hpi' - getplugins 'org.jenkinsci.plugins:doclinks:0.6.1@hpi' - getplugins 'org.jvnet.hudson.plugins:analysis-collector:1.52@hpi' - getplugins 'org.jvnet.hudson.plugins:analysis-core:1.95@hpi' - getplugins 'org.jvnet.hudson.plugins:checkstyle:3.50@hpi' - getplugins 'org.jvnet.hudson.plugins:dry:2.50@hpi' - getplugins 'org.jvnet.hudson.plugins:extended-read-permission:2.0@hpi' - getplugins 'org.jvnet.hudson.plugins:instant-messaging:1.35@hpi' - getplugins 'org.jvnet.hudson.plugins:ircbot:2.30@hpi' - getplugins 'org.jvnet.hudson.plugins:monitoring:1.72.0@hpi' - getplugins 'org.jvnet.hudson.plugins:thinBackup:1.9@hpi' - getplugins 'org.jvnet.hudson.plugins:warnings:4.66@hpi' + getplugins 'org.jenkins-ci.ui:momentjs:1.1.1@hpi' + getplugins 'org.jenkinsci.plugins:pipeline-model-api:1.2.9@hpi' + getplugins 'org.jenkinsci.plugins:pipeline-model-declarative-agent:1.1.1@hpi' + getplugins 'org.jenkinsci.plugins:pipeline-model-definition:1.2.9@hpi' + getplugins 'org.jenkinsci.plugins:pipeline-model-extensions:1.2.9@hpi' + getplugins 'org.jenkinsci.plugins:pipeline-stage-tags-metadata:1.2.9@hpi' + getplugins 'org.jvnet.hudson.plugins:groovy-postbuild:2.4.1@hpi' } From 2e9e0e6b5a2e0287268ca70d836f2a7e71fef72b Mon Sep 17 00:00:00 2001 From: Sam Gleske Date: Tue, 22 May 2018 02:36:05 -0700 Subject: [PATCH 03/16] Add blue ocean GUI --- dependencies.gradle | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/dependencies.gradle b/dependencies.gradle index f5f9b7f..27777b8 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -5,6 +5,27 @@ dependencies { //custom plugins (if any) provided by custom-plugins.txt; format: G:A:V@hpi or G:A:V@jpi //get plugins + getplugins 'com.coravy.hudson.plugins.github:github:1.29.0@hpi' + getplugins 'io.jenkins.blueocean:blueocean-bitbucket-pipeline:1.5.0@hpi' + getplugins 'io.jenkins.blueocean:blueocean-commons:1.5.0@hpi' + getplugins 'io.jenkins.blueocean:blueocean-config:1.5.0@hpi' + getplugins 'io.jenkins.blueocean:blueocean-core-js:1.5.0@hpi' + getplugins 'io.jenkins.blueocean:blueocean-dashboard:1.5.0@hpi' + getplugins 'io.jenkins.blueocean:blueocean-events:1.5.0@hpi' + getplugins 'io.jenkins.blueocean:blueocean-git-pipeline:1.5.0@hpi' + getplugins 'io.jenkins.blueocean:blueocean-github-pipeline:1.5.0@hpi' + getplugins 'io.jenkins.blueocean:blueocean-i18n:1.5.0@hpi' + getplugins 'io.jenkins.blueocean:blueocean-jira:1.5.0@hpi' + getplugins 'io.jenkins.blueocean:blueocean-jwt:1.5.0@hpi' + getplugins 'io.jenkins.blueocean:blueocean-personalization:1.5.0@hpi' + getplugins 'io.jenkins.blueocean:blueocean-pipeline-api-impl:1.5.0@hpi' + getplugins 'io.jenkins.blueocean:blueocean-pipeline-editor:1.5.0@hpi' + getplugins 'io.jenkins.blueocean:blueocean-pipeline-scm-api:1.5.0@hpi' + getplugins 'io.jenkins.blueocean:blueocean-rest-impl:1.5.0@hpi' + getplugins 'io.jenkins.blueocean:blueocean-rest:1.5.0@hpi' + getplugins 'io.jenkins.blueocean:blueocean-web:1.5.0@hpi' + getplugins 'io.jenkins.blueocean:blueocean:1.5.0@hpi' + getplugins 'io.jenkins.blueocean:jenkins-design-language:1.5.0@hpi' getplugins 'org.jenkins-ci.plugins.pipeline-stage-view:pipeline-rest-api:2.10@hpi' getplugins 'org.jenkins-ci.plugins.pipeline-stage-view:pipeline-stage-view:2.10@hpi' getplugins 'org.jenkins-ci.plugins.workflow:workflow-aggregator:2.5@hpi' @@ -22,9 +43,12 @@ dependencies { getplugins 'org.jenkins-ci.plugins:apache-httpcomponents-client-4-api:4.5.5-2.0@hpi' getplugins 'org.jenkins-ci.plugins:authentication-tokens:1.3@hpi' getplugins 'org.jenkins-ci.plugins:badge:1.4@hpi' + getplugins 'org.jenkins-ci.plugins:blueocean-autofavorite:1.2.2@hpi' + getplugins 'org.jenkins-ci.plugins:blueocean-display-url:2.2.0@hpi' getplugins 'org.jenkins-ci.plugins:bouncycastle-api:2.16.2@hpi' getplugins 'org.jenkins-ci.plugins:branch-api:2.0.20@hpi' getplugins 'org.jenkins-ci.plugins:build-timeout:1.19@hpi' + getplugins 'org.jenkins-ci.plugins:cloudbees-bitbucket-branch-source:2.2.11@hpi' getplugins 'org.jenkins-ci.plugins:cloudbees-folder:6.4@hpi' getplugins 'org.jenkins-ci.plugins:command-launcher:1.2@hpi' getplugins 'org.jenkins-ci.plugins:config-file-provider:2.18@hpi' @@ -40,13 +64,19 @@ dependencies { getplugins 'org.jenkins-ci.plugins:git-client:2.7.2@hpi' getplugins 'org.jenkins-ci.plugins:git-server:1.7@hpi' getplugins 'org.jenkins-ci.plugins:git:3.9.0@hpi' + getplugins 'org.jenkins-ci.plugins:github-api:1.90@hpi' + getplugins 'org.jenkins-ci.plugins:github-branch-source:2.3.4@hpi' getplugins 'org.jenkins-ci.plugins:groovy:2.0@hpi' + getplugins 'org.jenkins-ci.plugins:handy-uri-templates-2-api:2.1.6-1.0@hpi' + getplugins 'org.jenkins-ci.plugins:htmlpublisher:1.16@hpi' getplugins 'org.jenkins-ci.plugins:jackson2-api:2.8.11.2@hpi' + getplugins 'org.jenkins-ci.plugins:jira:3.0.0@hpi' getplugins 'org.jenkins-ci.plugins:job-dsl:1.69@hpi' getplugins 'org.jenkins-ci.plugins:jsch:0.1.54.2@hpi' getplugins 'org.jenkins-ci.plugins:junit:1.24@hpi' getplugins 'org.jenkins-ci.plugins:mailer:1.21@hpi' getplugins 'org.jenkins-ci.plugins:matrix-project:1.13@hpi' + getplugins 'org.jenkins-ci.plugins:mercurial:2.3@hpi' getplugins 'org.jenkins-ci.plugins:pipeline-build-step:2.7@hpi' getplugins 'org.jenkins-ci.plugins:pipeline-graph-analysis:1.6@hpi' getplugins 'org.jenkins-ci.plugins:pipeline-input-step:2.8@hpi' @@ -54,12 +84,15 @@ dependencies { getplugins 'org.jenkins-ci.plugins:pipeline-multibranch-defaults:1.1@hpi' getplugins 'org.jenkins-ci.plugins:pipeline-stage-step:2.3@hpi' getplugins 'org.jenkins-ci.plugins:plain-credentials:1.4@hpi' + getplugins 'org.jenkins-ci.plugins:pubsub-light:1.12@hpi' getplugins 'org.jenkins-ci.plugins:scm-api:2.2.7@hpi' getplugins 'org.jenkins-ci.plugins:scm-filter-branch-pr:0.3@hpi' getplugins 'org.jenkins-ci.plugins:script-security:1.44@hpi' + getplugins 'org.jenkins-ci.plugins:sse-gateway:1.15@hpi' getplugins 'org.jenkins-ci.plugins:ssh-credentials:1.13@hpi' getplugins 'org.jenkins-ci.plugins:structs:1.14@hpi' getplugins 'org.jenkins-ci.plugins:token-macro:2.5@hpi' + getplugins 'org.jenkins-ci.plugins:variant:1.1@hpi' getplugins 'org.jenkins-ci.ui:ace-editor:1.1@hpi' getplugins 'org.jenkins-ci.ui:handlebars:1.1.1@hpi' getplugins 'org.jenkins-ci.ui:jquery-detached:1.2.1@hpi' @@ -69,5 +102,6 @@ dependencies { getplugins 'org.jenkinsci.plugins:pipeline-model-definition:1.2.9@hpi' getplugins 'org.jenkinsci.plugins:pipeline-model-extensions:1.2.9@hpi' getplugins 'org.jenkinsci.plugins:pipeline-stage-tags-metadata:1.2.9@hpi' + getplugins 'org.jvnet.hudson.plugins:favorite:2.3.2@hpi' getplugins 'org.jvnet.hudson.plugins:groovy-postbuild:2.4.1@hpi' } From 5ed1cc7c29d792537db263fd72ed331e291dc8f7 Mon Sep 17 00:00:00 2001 From: Sam Gleske Date: Thu, 24 May 2018 00:07:08 -0700 Subject: [PATCH 04/16] Add more dependencies --- dependencies.gradle | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/dependencies.gradle b/dependencies.gradle index 27777b8..c9fb921 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -26,6 +26,7 @@ dependencies { getplugins 'io.jenkins.blueocean:blueocean-web:1.5.0@hpi' getplugins 'io.jenkins.blueocean:blueocean:1.5.0@hpi' getplugins 'io.jenkins.blueocean:jenkins-design-language:1.5.0@hpi' + getplugins 'org.jenkins-ci.main:maven-plugin:3.1.2@hpi' getplugins 'org.jenkins-ci.plugins.pipeline-stage-view:pipeline-rest-api:2.10@hpi' getplugins 'org.jenkins-ci.plugins.pipeline-stage-view:pipeline-stage-view:2.10@hpi' getplugins 'org.jenkins-ci.plugins.workflow:workflow-aggregator:2.5@hpi' @@ -55,26 +56,29 @@ dependencies { getplugins 'org.jenkins-ci.plugins:copyartifact:1.39.1@hpi' getplugins 'org.jenkins-ci.plugins:credentials-binding:1.16@hpi' getplugins 'org.jenkins-ci.plugins:credentials:2.1.16@hpi' + getplugins 'org.jenkins-ci.plugins:dashboard-view:2.9.11@hpi' getplugins 'org.jenkins-ci.plugins:display-url-api:2.2.0@hpi' getplugins 'org.jenkins-ci.plugins:docker-commons:1.13@hpi' getplugins 'org.jenkins-ci.plugins:docker-workflow:1.17@hpi' getplugins 'org.jenkins-ci.plugins:durable-task:1.22@hpi' getplugins 'org.jenkins-ci.plugins:email-ext:2.62@hpi' getplugins 'org.jenkins-ci.plugins:embeddable-build-status:1.9@hpi' - getplugins 'org.jenkins-ci.plugins:git-client:2.7.2@hpi' + getplugins 'org.jenkins-ci.plugins:git-client:3.0.0-beta3-SNAPSHOT (private-b4130534-sam)@hpi' getplugins 'org.jenkins-ci.plugins:git-server:1.7@hpi' - getplugins 'org.jenkins-ci.plugins:git:3.9.0@hpi' + getplugins 'org.jenkins-ci.plugins:git:4.0.0-SNAPSHOT (private-35566776-sam)@hpi' getplugins 'org.jenkins-ci.plugins:github-api:1.90@hpi' getplugins 'org.jenkins-ci.plugins:github-branch-source:2.3.4@hpi' getplugins 'org.jenkins-ci.plugins:groovy:2.0@hpi' getplugins 'org.jenkins-ci.plugins:handy-uri-templates-2-api:2.1.6-1.0@hpi' getplugins 'org.jenkins-ci.plugins:htmlpublisher:1.16@hpi' getplugins 'org.jenkins-ci.plugins:jackson2-api:2.8.11.2@hpi' + getplugins 'org.jenkins-ci.plugins:javadoc:1.4@hpi' getplugins 'org.jenkins-ci.plugins:jira:3.0.0@hpi' getplugins 'org.jenkins-ci.plugins:job-dsl:1.69@hpi' getplugins 'org.jenkins-ci.plugins:jsch:0.1.54.2@hpi' getplugins 'org.jenkins-ci.plugins:junit:1.24@hpi' getplugins 'org.jenkins-ci.plugins:mailer:1.21@hpi' + getplugins 'org.jenkins-ci.plugins:matrix-auth:2.2@hpi' getplugins 'org.jenkins-ci.plugins:matrix-project:1.13@hpi' getplugins 'org.jenkins-ci.plugins:mercurial:2.3@hpi' getplugins 'org.jenkins-ci.plugins:pipeline-build-step:2.7@hpi' @@ -85,6 +89,7 @@ dependencies { getplugins 'org.jenkins-ci.plugins:pipeline-stage-step:2.3@hpi' getplugins 'org.jenkins-ci.plugins:plain-credentials:1.4@hpi' getplugins 'org.jenkins-ci.plugins:pubsub-light:1.12@hpi' + getplugins 'org.jenkins-ci.plugins:rich-text-publisher-plugin:1.4@hpi' getplugins 'org.jenkins-ci.plugins:scm-api:2.2.7@hpi' getplugins 'org.jenkins-ci.plugins:scm-filter-branch-pr:0.3@hpi' getplugins 'org.jenkins-ci.plugins:script-security:1.44@hpi' @@ -93,6 +98,8 @@ dependencies { getplugins 'org.jenkins-ci.plugins:structs:1.14@hpi' getplugins 'org.jenkins-ci.plugins:token-macro:2.5@hpi' getplugins 'org.jenkins-ci.plugins:variant:1.1@hpi' + getplugins 'org.jenkins-ci.plugins:view-job-filters:1.27@hpi' + getplugins 'org.jenkins-ci.plugins:windows-slaves:1.3.1@hpi' getplugins 'org.jenkins-ci.ui:ace-editor:1.1@hpi' getplugins 'org.jenkins-ci.ui:handlebars:1.1.1@hpi' getplugins 'org.jenkins-ci.ui:jquery-detached:1.2.1@hpi' From ac8e7fbcf69dffcab86f470df23235907b3411ad Mon Sep 17 00:00:00 2001 From: Sam Gleske Date: Thu, 24 May 2018 00:09:09 -0700 Subject: [PATCH 05/16] Views for Jenkins jobs --- .../init.groovy.d/view_build_pipelines.xml | 27 ++++++++++ scripts/init.groovy.d/view_maintenance.xml | 22 ++++++++ .../init.groovy.d/view_status_overview.xml | 52 +++++++++++++++++++ 3 files changed, 101 insertions(+) create mode 100644 scripts/init.groovy.d/view_build_pipelines.xml create mode 100644 scripts/init.groovy.d/view_maintenance.xml create mode 100644 scripts/init.groovy.d/view_status_overview.xml diff --git a/scripts/init.groovy.d/view_build_pipelines.xml b/scripts/init.groovy.d/view_build_pipelines.xml new file mode 100644 index 0000000..88bac44 --- /dev/null +++ b/scripts/init.groovy.d/view_build_pipelines.xml @@ -0,0 +1,27 @@ + + + Build Pipelines + false + false + + + + + + + includeMatched + org.jenkinsci.plugins.pipeline.multibranch.defaults.PipelineMultiBranchDefaultsProject + + + + + + + + + + + + [^_].* + false + \ No newline at end of file diff --git a/scripts/init.groovy.d/view_maintenance.xml b/scripts/init.groovy.d/view_maintenance.xml new file mode 100644 index 0000000..cd6686b --- /dev/null +++ b/scripts/init.groovy.d/view_maintenance.xml @@ -0,0 +1,22 @@ + + + Maintenance + false + false + + + + + + + + + + + + + + + ^_.* + false + \ No newline at end of file diff --git a/scripts/init.groovy.d/view_status_overview.xml b/scripts/init.groovy.d/view_status_overview.xml new file mode 100644 index 0000000..afb0be0 --- /dev/null +++ b/scripts/init.groovy.d/view_status_overview.xml @@ -0,0 +1,52 @@ + + + Status Overview + false + false + + + + + + + includeMatched + org.jenkinsci.plugins.workflow.job.WorkflowJob + + + + true + false + false + false + 50% + 50% + + + + + dashboard_portlet_8806 + Jobs Grid + 2 + true + + + dashboard_portlet_9728 + Unstable Jobs + false + true + + + dashboard_portlet_30498 + Latest builds + 5 + + + dashboard_portlet_25458 + Stay Informed + <div style="margin:1em" align="right"><a href="/blue/pipelines"><img alt="Open Blue Ocean" src="/static/8316b8ea/plugin/blueocean-rest-impl/images/48x48/blueocean.png" height="16" border="0" width="16"> Beautifully Rendered Pipelines</a><span style="padding-left:1em"><a href="/legend">Legend</a></span><span style="padding-left:1em"><a href="/rssAll"><img alt="Feed" src="/static/a56acb97/images/atom.gif" height="16" border="0" width="16"> RSS for all</a></span><span style="padding-left:1em"><a href="/rssFailed"><img alt="Feed" src="/static/a56acb97/images/atom.gif" height="16" border="0" width="16"> RSS for failures</a></span><span style="padding-left:1em"><a href="/rssLatest"><img alt="Feed" src="/static/a56acb97/images/atom.gif" height="16" border="0" width="16"> RSS for just latest builds</a></span></div> + <div style="margin:1em" align="right"><a href="/blue/pipelines"><img alt="Open Blue Ocean" src="/static/8316b8ea/plugin/blueocean-rest-impl/images/48x48/blueocean.png" height="16" border="0" width="16"> Beautifully Rendered Pipelines</a><span style="padding-left:1em"><a href="/legend">Legend</a></span><span style="padding-left:1em"><a href="/rssAll"><img alt="Feed" src="/static/a56acb97/images/atom.gif" height="16" border="0" width="16"> RSS for all</a></span><span style="padding-left:1em"><a href="/rssFailed"><img alt="Feed" src="/static/a56acb97/images/atom.gif" height="16" border="0" width="16"> RSS for failures</a></span><span style="padding-left:1em"><a href="/rssLatest"><img alt="Feed" src="/static/a56acb97/images/atom.gif" height="16" border="0" width="16"> RSS for just latest builds</a></span></div> + HTML + + + + \ No newline at end of file From 344cefef57fd96b5921f5f4bbff12f0f13a2e67a Mon Sep 17 00:00:00 2001 From: Sam Gleske Date: Thu, 24 May 2018 00:35:18 -0700 Subject: [PATCH 06/16] Add custom plugins as part of packaging --- custom-plugins.txt | 9 +++++++++ dependencies.gradle | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 custom-plugins.txt diff --git a/custom-plugins.txt b/custom-plugins.txt new file mode 100644 index 0000000..e404133 --- /dev/null +++ b/custom-plugins.txt @@ -0,0 +1,9 @@ +# THESE BETA PLUGINS ARE REQUIRED BECAUSE OF +# https://github.com/gimp-ci/jenkins-dsl/issues/1 + +# built from https://github.com/jenkinsci/git-client-plugin @ b4130534522ba299be8125b416e4237612d5f289 +org.jenkins-ci.plugins:git-client:3.0.0-beta3-SNAPSHOT@hpi + +# built from https://github.com/jenkinsci/git-plugin @ 243f6f366f20a63f0dbe549fca28f280b64a3fd9 +# ref: https://github.com/jenkinsci/git-plugin/pull/595 +org.jenkins-ci.plugins:git:4.0.0-SNAPSHOT@hpi diff --git a/dependencies.gradle b/dependencies.gradle index c9fb921..18aaaeb 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -3,6 +3,8 @@ dependencies { getjenkins 'org.jenkins-ci.main:jenkins-war:2.107.3@war' //custom plugins (if any) provided by custom-plugins.txt; format: G:A:V@hpi or G:A:V@jpi + getplugins 'org.jenkins-ci.plugins:git-client:3.0.0-beta3-SNAPSHOT@hpi' + getplugins 'org.jenkins-ci.plugins:git:4.0.0-SNAPSHOT@hpi' //get plugins getplugins 'com.coravy.hudson.plugins.github:github:1.29.0@hpi' @@ -63,9 +65,7 @@ dependencies { getplugins 'org.jenkins-ci.plugins:durable-task:1.22@hpi' getplugins 'org.jenkins-ci.plugins:email-ext:2.62@hpi' getplugins 'org.jenkins-ci.plugins:embeddable-build-status:1.9@hpi' - getplugins 'org.jenkins-ci.plugins:git-client:3.0.0-beta3-SNAPSHOT (private-b4130534-sam)@hpi' getplugins 'org.jenkins-ci.plugins:git-server:1.7@hpi' - getplugins 'org.jenkins-ci.plugins:git:4.0.0-SNAPSHOT (private-35566776-sam)@hpi' getplugins 'org.jenkins-ci.plugins:github-api:1.90@hpi' getplugins 'org.jenkins-ci.plugins:github-branch-source:2.3.4@hpi' getplugins 'org.jenkins-ci.plugins:groovy:2.0@hpi' From 05da89d9d2fd3c7e93a8368ba79a82b797268a9d Mon Sep 17 00:00:00 2001 From: Sam Gleske Date: Thu, 24 May 2018 18:54:23 -0700 Subject: [PATCH 07/16] Using a new git hash for custom git-plugin --- custom-plugins.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom-plugins.txt b/custom-plugins.txt index e404133..d8c6fa8 100644 --- a/custom-plugins.txt +++ b/custom-plugins.txt @@ -4,6 +4,6 @@ # built from https://github.com/jenkinsci/git-client-plugin @ b4130534522ba299be8125b416e4237612d5f289 org.jenkins-ci.plugins:git-client:3.0.0-beta3-SNAPSHOT@hpi -# built from https://github.com/jenkinsci/git-plugin @ 243f6f366f20a63f0dbe549fca28f280b64a3fd9 +# built from https://github.com/jenkinsci/git-plugin @ 17705db2da2a01a4680a28ccddd494e4ff6800c8 # ref: https://github.com/jenkinsci/git-plugin/pull/595 org.jenkins-ci.plugins:git:4.0.0-SNAPSHOT@hpi From 2b96198600b3b1aaf2ed0ea9a791a570c1457836 Mon Sep 17 00:00:00 2001 From: Sam Gleske Date: Thu, 24 May 2018 21:11:34 -0700 Subject: [PATCH 08/16] Add initial seed job --- scripts/init.groovy.d/job_generator.xml | 49 +++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 scripts/init.groovy.d/job_generator.xml diff --git a/scripts/init.groovy.d/job_generator.xml b/scripts/init.groovy.d/job_generator.xml new file mode 100644 index 0000000..751ca20 --- /dev/null +++ b/scripts/init.groovy.d/job_generator.xml @@ -0,0 +1,49 @@ + + + + + Seed Job Generator + false + + + 2 + + + https://github.com/gimp-ci/jenkins-dsl + + + + + refs/heads/master + + + false + + + + + + true + false + false + false + + false + + + jobs/*.groovy + false + false + false + false + true + true + IGNORE + IGNORE + IGNORE + JENKINS_ROOT + + + + + \ No newline at end of file From ac22b650c0e731699a8e7e54bd058bc89b8ac9ad Mon Sep 17 00:00:00 2001 From: Sam Gleske Date: Thu, 24 May 2018 21:14:15 -0700 Subject: [PATCH 09/16] Move configs to configs dir --- {scripts/init.groovy.d => configs}/job_generator.xml | 0 {scripts/init.groovy.d => configs}/view_build_pipelines.xml | 0 {scripts/init.groovy.d => configs}/view_maintenance.xml | 0 {scripts/init.groovy.d => configs}/view_status_overview.xml | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename {scripts/init.groovy.d => configs}/job_generator.xml (100%) rename {scripts/init.groovy.d => configs}/view_build_pipelines.xml (100%) rename {scripts/init.groovy.d => configs}/view_maintenance.xml (100%) rename {scripts/init.groovy.d => configs}/view_status_overview.xml (100%) diff --git a/scripts/init.groovy.d/job_generator.xml b/configs/job_generator.xml similarity index 100% rename from scripts/init.groovy.d/job_generator.xml rename to configs/job_generator.xml diff --git a/scripts/init.groovy.d/view_build_pipelines.xml b/configs/view_build_pipelines.xml similarity index 100% rename from scripts/init.groovy.d/view_build_pipelines.xml rename to configs/view_build_pipelines.xml diff --git a/scripts/init.groovy.d/view_maintenance.xml b/configs/view_maintenance.xml similarity index 100% rename from scripts/init.groovy.d/view_maintenance.xml rename to configs/view_maintenance.xml diff --git a/scripts/init.groovy.d/view_status_overview.xml b/configs/view_status_overview.xml similarity index 100% rename from scripts/init.groovy.d/view_status_overview.xml rename to configs/view_status_overview.xml From 793ebf4dfbfe3945a6b9a49cbc042d1d5a022f9f Mon Sep 17 00:00:00 2001 From: Sam Gleske Date: Thu, 24 May 2018 21:19:21 -0700 Subject: [PATCH 10/16] Bump jenkins-bootstrap-shared --- jenkins-bootstrap-shared | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jenkins-bootstrap-shared b/jenkins-bootstrap-shared index 1682eef..838dd10 160000 --- a/jenkins-bootstrap-shared +++ b/jenkins-bootstrap-shared @@ -1 +1 @@ -Subproject commit 1682eef7564f8af7525e969547f2df1b9599f371 +Subproject commit 838dd10e76a959653b318947344326e4ea4bcf45 From 4beb7e8a08f31559ed2e9ae6666236910c43ba23 Mon Sep 17 00:00:00 2001 From: Sam Gleske Date: Thu, 24 May 2018 21:19:36 -0700 Subject: [PATCH 11/16] Create or update views and seed job --- jenkins_bootstrap.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/jenkins_bootstrap.sh b/jenkins_bootstrap.sh index 5f9ee09..4b76bb4 100755 --- a/jenkins_bootstrap.sh +++ b/jenkins_bootstrap.sh @@ -1,2 +1,7 @@ #!/bin/bash source jenkins-bootstrap-shared/jenkins_bootstrap.sh + +create_view --view-name 'Status Overview' --xml-data ./configs/view_status_overview.xml +create_view --view-name 'Maintenance' --xml-data ./configs/view_maintenance.xml +create_view --view-name 'Build Pipelines' --xml-data ./configs/view_build_pipelines.xml +create_job --job-name '_job_generator' --xml-data ./configs/job_generator.xml From 4a4a95f1ca3276e8c53227f24819454dc9b10a38 Mon Sep 17 00:00:00 2001 From: Sam Gleske Date: Thu, 24 May 2018 21:21:55 -0700 Subject: [PATCH 12/16] Add build environment to plugins --- custom-plugins.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/custom-plugins.txt b/custom-plugins.txt index d8c6fa8..db332f9 100644 --- a/custom-plugins.txt +++ b/custom-plugins.txt @@ -1,5 +1,11 @@ # THESE BETA PLUGINS ARE REQUIRED BECAUSE OF # https://github.com/gimp-ci/jenkins-dsl/issues/1 +# Plugins were built in the following environment: +# Ubuntu 16.04.4 LTS +# Linux 4.13.0-41-generic x86_64 +# java version "1.8.0_131" +# Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-24T11:49:05-08:00) +# Default locale: en_US, platform encoding: UTF-8 # built from https://github.com/jenkinsci/git-client-plugin @ b4130534522ba299be8125b416e4237612d5f289 org.jenkins-ci.plugins:git-client:3.0.0-beta3-SNAPSHOT@hpi From 891e1bf531207ea3786421b328dce3371e2a55f3 Mon Sep 17 00:00:00 2001 From: Sam Gleske Date: Thu, 24 May 2018 21:37:41 -0700 Subject: [PATCH 13/16] Add command to build plugins --- custom-plugins.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/custom-plugins.txt b/custom-plugins.txt index db332f9..06ffdd7 100644 --- a/custom-plugins.txt +++ b/custom-plugins.txt @@ -6,6 +6,8 @@ # java version "1.8.0_131" # Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-24T11:49:05-08:00) # Default locale: en_US, platform encoding: UTF-8 +# Build Command: +# mvn clean package install # built from https://github.com/jenkinsci/git-client-plugin @ b4130534522ba299be8125b416e4237612d5f289 org.jenkins-ci.plugins:git-client:3.0.0-beta3-SNAPSHOT@hpi From 34208be3ea22bd0f59d733200c94ff439440a5c8 Mon Sep 17 00:00:00 2001 From: Sam Gleske Date: Thu, 24 May 2018 21:46:51 -0700 Subject: [PATCH 14/16] Configure Jenkinsfile --- jenkins-bootstrap-shared | 2 +- jenkins_bootstrap.sh | 6 +++ .../configure-global-jenkinsfile-gimp.groovy | 53 +++++++++++++++++++ 3 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 scripts/configure-global-jenkinsfile-gimp.groovy diff --git a/jenkins-bootstrap-shared b/jenkins-bootstrap-shared index 838dd10..fd20182 160000 --- a/jenkins-bootstrap-shared +++ b/jenkins-bootstrap-shared @@ -1 +1 @@ -Subproject commit 838dd10e76a959653b318947344326e4ea4bcf45 +Subproject commit fd2018259cce085d497466589d6c02be93419079 diff --git a/jenkins_bootstrap.sh b/jenkins_bootstrap.sh index 4b76bb4..4b4b657 100755 --- a/jenkins_bootstrap.sh +++ b/jenkins_bootstrap.sh @@ -5,3 +5,9 @@ create_view --view-name 'Status Overview' --xml-data ./configs/view_status_overv create_view --view-name 'Maintenance' --xml-data ./configs/view_maintenance.xml create_view --view-name 'Build Pipelines' --xml-data ./configs/view_build_pipelines.xml create_job --job-name '_job_generator' --xml-data ./configs/job_generator.xml +#disable job dsl script security +jenkins_console -s "${SCRIPT_LIBRARY_PATH}/configure-job-dsl-security.groovy" +#only enable JNLP4 agent protocol +jenkins_console -s "${SCRIPT_LIBRARY_PATH}/configure-jnlp-agent-protocols.groovy" +#global Jenkinsfile +jenkins_console -s "./scripts/configure-global-jenkinsfile-gimp.groovy" diff --git a/scripts/configure-global-jenkinsfile-gimp.groovy b/scripts/configure-global-jenkinsfile-gimp.groovy new file mode 100644 index 0000000..e63f021 --- /dev/null +++ b/scripts/configure-global-jenkinsfile-gimp.groovy @@ -0,0 +1,53 @@ +/* + Copyright 2015-2018 Sam Gleske - https://github.com/samrocketman/jenkins-bootstrap-jervis + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ + +/* + Configure a global Jenkinsfile within the Config File Provider plugin. This + is meant to be used by the Pipeline Multibranch Defaults Plugin. + */ + +import jenkins.model.Jenkins +import org.jenkinsci.plugins.configfiles.GlobalConfigFiles +import org.jenkinsci.plugins.configfiles.groovy.GroovyScript + +//bindings +script_approval = Jenkins.instance.getExtensionList('org.jenkinsci.plugins.scriptsecurity.scripts.ScriptApproval')[0] +config_files = Jenkins.instance.getExtensionList(GlobalConfigFiles)[0] + +jenkinsfile_script = ''' +gimpBuildPipeline() +'''.trim() + +if(!config_files.getById('Jenkinsfile')) { + //create global config + GroovyScript new_config = new GroovyScript('Jenkinsfile', 'Global Jenkinsfile', '', jenkinsfile_script) + config_files.save(new_config) + println 'Configured global Jenkinsfile.' +} +else { + println 'Nothing changed. Global Jenkinsfile already configured.' +} + +//approve Jenkinsfile script for execution +String hash = script_approval.hash(jenkinsfile_script, 'groovy') +if(hash in script_approval.approvedScriptHashes) { + println 'Nothing changed. Global Jenkinsfile script already approved.' +} +else { + script_approval.approveScript(hash) + script_approval.save() + println 'Global Jenkinsfile script has been approved in script security.' +} From 8999203b38f4734f7210ec1c75b49443d8149f76 Mon Sep 17 00:00:00 2001 From: Sam Gleske Date: Thu, 24 May 2018 21:53:27 -0700 Subject: [PATCH 15/16] Configure shared library --- configs/shared-pipelines.groovy | 12 ++++++++++++ jenkins_bootstrap.sh | 4 ++++ 2 files changed, 16 insertions(+) create mode 100644 configs/shared-pipelines.groovy diff --git a/configs/shared-pipelines.groovy b/configs/shared-pipelines.groovy new file mode 100644 index 0000000..3e05f15 --- /dev/null +++ b/configs/shared-pipelines.groovy @@ -0,0 +1,12 @@ +pipeline_shared_libraries = [ + 'GIMP Pipeline Library': [ + 'defaultVersion': 'master', + 'implicit': true, + 'allowVersionOverride': false, + 'includeInChangesets': true, + 'scm': [ + 'remote': 'https://github.com/gimp-ci/jenkins-dsl' + ] + ] +] + diff --git a/jenkins_bootstrap.sh b/jenkins_bootstrap.sh index 4b4b657..f8c2712 100755 --- a/jenkins_bootstrap.sh +++ b/jenkins_bootstrap.sh @@ -11,3 +11,7 @@ jenkins_console -s "${SCRIPT_LIBRARY_PATH}/configure-job-dsl-security.groovy" jenkins_console -s "${SCRIPT_LIBRARY_PATH}/configure-jnlp-agent-protocols.groovy" #global Jenkinsfile jenkins_console -s "./scripts/configure-global-jenkinsfile-gimp.groovy" +#set markup formatter to HTML +jenkins_console -s "${SCRIPT_LIBRARY_PATH}/configure-markup-formatter.groovy" +#configure shared pipeline library +jenkins_console -s ./configs/shared-pipelines.groovy -s "${SCRIPT_LIBRARY_PATH}"/configure-pipeline-global-shared-libraries.groovy From 184c24c1a5bb126d6b925cdfaeebd03909bf6efa Mon Sep 17 00:00:00 2001 From: Sam Gleske Date: Thu, 24 May 2018 22:56:25 -0700 Subject: [PATCH 16/16] Configure global lockable resources --- configs/lockable-resources.groovy | 6 ++++++ dependencies.gradle | 1 + jenkins-bootstrap-shared | 2 +- jenkins_bootstrap.sh | 1 + 4 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 configs/lockable-resources.groovy diff --git a/configs/lockable-resources.groovy b/configs/lockable-resources.groovy new file mode 100644 index 0000000..9719b1d --- /dev/null +++ b/configs/lockable-resources.groovy @@ -0,0 +1,6 @@ +lockable_resources = [ + [ + name: 'update-git-cache', + description: 'Lock to prevent multiple jobs from updating the git cache at once.' + ] +] diff --git a/dependencies.gradle b/dependencies.gradle index 18aaaeb..b8fe7f0 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -28,6 +28,7 @@ dependencies { getplugins 'io.jenkins.blueocean:blueocean-web:1.5.0@hpi' getplugins 'io.jenkins.blueocean:blueocean:1.5.0@hpi' getplugins 'io.jenkins.blueocean:jenkins-design-language:1.5.0@hpi' + getplugins 'org.6wind.jenkins:lockable-resources:2.2@hpi' getplugins 'org.jenkins-ci.main:maven-plugin:3.1.2@hpi' getplugins 'org.jenkins-ci.plugins.pipeline-stage-view:pipeline-rest-api:2.10@hpi' getplugins 'org.jenkins-ci.plugins.pipeline-stage-view:pipeline-stage-view:2.10@hpi' diff --git a/jenkins-bootstrap-shared b/jenkins-bootstrap-shared index fd20182..372047b 160000 --- a/jenkins-bootstrap-shared +++ b/jenkins-bootstrap-shared @@ -1 +1 @@ -Subproject commit fd2018259cce085d497466589d6c02be93419079 +Subproject commit 372047b21e4e139365bbb57f07c4c3f7dc0419c0 diff --git a/jenkins_bootstrap.sh b/jenkins_bootstrap.sh index f8c2712..491c33b 100755 --- a/jenkins_bootstrap.sh +++ b/jenkins_bootstrap.sh @@ -15,3 +15,4 @@ jenkins_console -s "./scripts/configure-global-jenkinsfile-gimp.groovy" jenkins_console -s "${SCRIPT_LIBRARY_PATH}/configure-markup-formatter.groovy" #configure shared pipeline library jenkins_console -s ./configs/shared-pipelines.groovy -s "${SCRIPT_LIBRARY_PATH}"/configure-pipeline-global-shared-libraries.groovy +jenkins_console -s ./configs/lockable-resources.groovy -s "${SCRIPT_LIBRARY_PATH}"/configure-lockable-resources.groovy