Fixed import groovy, update site parameter
diff --git a/README.rst b/README.rst
index 2065890..44fe5ba 100644
--- a/README.rst
+++ b/README.rst
@@ -98,6 +98,16 @@
- name: rebuild
- name: test-stability
+Jenkins with experimental plugin source support
+
+.. code-block:: yaml
+
+ jenkins:
+ master:
+ enabled: true
+ update_site_url: 'http://updates.jenkins-ci.org/experimental/update-center.json'
+
+
Agent (former slave)
--------------------
@@ -120,6 +130,7 @@
private_key: |
-----BEGIN PGP PRIVATE KEY BLOCK-----
...
+
Client
------
diff --git a/jenkins/files/hudson.model.UpdateCenter.xml b/jenkins/files/hudson.model.UpdateCenter.xml
new file mode 100644
index 0000000..72a1189
--- /dev/null
+++ b/jenkins/files/hudson.model.UpdateCenter.xml
@@ -0,0 +1,8 @@
+{%- from "jenkins/map.jinja" import server with context %}
+<?xml version='1.0' encoding='UTF-8'?>
+<sites>
+ <site>
+ <id>default</id>
+ <url>{{ server.update_site_url }}</url>
+ </site>
+</sites>
\ No newline at end of file
diff --git a/jenkins/files/jobs/workflow.xml b/jenkins/files/jobs/workflow.xml
index 8533c88..aab96e8 100644
--- a/jenkins/files/jobs/workflow.xml
+++ b/jenkins/files/jobs/workflow.xml
@@ -1,14 +1,14 @@
<?xml version='1.0' encoding='UTF-8'?>
{%- from "jenkins/map.jinja" import client with context -%}
{%- set job = salt['pillar.get']('jenkins:client:job:'+job_name) -%}
-{%- macro load_groovy_file() -%}
+{%- macro load_groovy_file() %}
{%- set groovy_file='_jenkins/jobs/'+job.script.repository+'/'+job.script.file %}
{%- include groovy_file %}
-{%- endmacro -%}
-{%- macro load_groovy_lib(lib) -%}
+{%- endmacro %}
+{%- macro load_groovy_lib(lib) %}
{%- set groovy_file='_jenkins/jobs/'+lib.repository+'/'+lib.file %}
{%- include groovy_file %}
-{%- endmacro -%}
+{%- endmacro %}
<flow-definition plugin="workflow-job@2.5">
<description>
Salt generated project, do not edit. Changes will be overwritten.
@@ -48,17 +48,19 @@
{%- endif %}
</properties>
<definition class="org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition" plugin="workflow-cps@2.12">
- <script>
- {%- if job.libs is defined %}
- {%- for lib in job.libs %}
- {{- load_groovy_lib(lib)|e }}
- {%- endfor %}
- {%- endif %}
- {%- if job.script.file is defined %}
- {{- load_groovy_file()|e }}
- {%- else %}
- {{- job.script.get('content', '')|e }}
- {%- endif %}
+ <script>// libraries
+{%- if job.libs is defined %}
+{%- for lib in job.libs %}
+{{ load_groovy_lib(lib)|e }}
+{%- endfor %}
+{%- endif %}
+// workflow
+
+{%- if job.script.file is defined %}
+{{ load_groovy_file()|e }}
+{%- else %}
+{{ job.script.get('content', '')|e }}
+{%- endif %}
</script>
<sandbox>true</sandbox>
</definition>
diff --git a/jenkins/map.jinja b/jenkins/map.jinja
index fec0724..27e57ba 100644
--- a/jenkins/map.jinja
+++ b/jenkins/map.jinja
@@ -4,11 +4,13 @@
'pkgs': ['jenkins'],
'service': 'jenkins',
'config': '/etc/default/jenkins',
+ 'update_site_url': 'http://updates.jenkins-ci.org/update-center.json'
},
'RedHat': {
'pkgs': ['jenkins'],
'service': 'jenkins',
'config': '/etc/sysconfig/jenkins',
+ 'update_site_url': 'http://updates.jenkins-ci.org/update-center.json'
},
}, merge=salt['pillar.get']('jenkins:master')) %}
diff --git a/jenkins/master/plugin.sls b/jenkins/master/plugin.sls
index 49fb6a0..6c618e9 100644
--- a/jenkins/master/plugin.sls
+++ b/jenkins/master/plugin.sls
@@ -12,8 +12,6 @@
- wget http://localhost:{{ master.http.port }}/jnlpJars/jenkins-cli.jar
- unless: "[ -f /root/jenkins-cli.jar ]"
- cwd: /root
- - require:
- - service: jenkins_master_service
{%- for plugin in master.plugins %}
diff --git a/jenkins/master/service.sls b/jenkins/master/service.sls
index 5145844..d01a001 100644
--- a/jenkins/master/service.sls
+++ b/jenkins/master/service.sls
@@ -27,7 +27,14 @@
- template: jinja
{%- endif %}
- user: jenkins
- - group: nogroup
+ - require:
+ - pkg: jenkins_packages
+
+/var/lib/jenkins/hudson.model.UpdateCenter.xml:
+ file.managed:
+ - source: salt://jenkins/files/hudson.model.UpdateCenter.xml
+ - template: jinja
+ - user: jenkins
- require:
- pkg: jenkins_packages
@@ -51,5 +58,6 @@
- watch:
- file: jenkins_{{ master.config }}
- file: /var/lib/jenkins/config.xml
+ - file: /var/lib/jenkins/hudson.model.UpdateCenter.xml
{%- endif %}