Commit ce208fc6 by Will Daly

Merge pull request #440 from edx/will/jenkins-master-updates

Updates to Jenkins master
parents 059696ca 35aed245
......@@ -6,5 +6,7 @@
hosts: jenkins_master
sudo: True
gather_facts: True
vars:
COMMON_DATA_DIR: "/mnt"
roles:
- jenkins_master
......@@ -4,8 +4,9 @@ jenkins_group: "edx"
jenkins_server_name: "jenkins.testeng.edx.org"
jenkins_port: 8080
jenkins_deb_url: "http://pkg.jenkins-ci.org/debian/binary/jenkins_1.530_all.deb"
jenkins_deb: "jenkins_1.530_all.deb"
jenkins_version: 1.538
jenkins_deb_url: "http://pkg.jenkins-ci.org/debian/binary/jenkins_{{ jenkins_version }}_all.deb"
jenkins_deb: "jenkins_{{ jenkins_version }}_all.deb"
jenkins_plugins:
- { name: "build-name-setter", version: "1.3" }
......@@ -13,6 +14,7 @@ jenkins_plugins:
- { name: "build-timeout", version: "1.11" }
- { name: "cobertura", version: "1.9.2" }
- { name: "copyartifact", version: "1.28" }
- { name: "copy-to-slave", version: "1.4.3" }
- { name: "credentials", version: "1.8.3" }
- { name: "dashboard-view", version: "2.9.1" }
- { name: "ec2", version: "1.19" }
......@@ -23,12 +25,14 @@ jenkins_plugins:
- { name: "javadoc", version: "1.1" }
- { name: "jobConfigHistory", version: "2.4" }
- { name: "jquery", version: "1.7.2-1" }
- { name: "mailer", version: "1.5" }
- { name: "nested-view", version: "1.10" }
- { name: "next-build-number", version: "1.0" }
- { name: "notification", version: "1.5" }
- { name: "pam-auth", version: "1.0" }
- { name: "parameterized-trigger", version: "2.20" }
- { name: "postbuild-task", version: "1.8" }
- { name: "sauce-ondemand", version: "1.61" }
- { name: "s3", version: "0.5" }
- { name: "ssh-agent", version: "1.3" }
- { name: "ssh-credentials", version: "1.5.1" }
......@@ -55,7 +59,7 @@ jenkins_custom_plugins:
- { repo_name: "git-plugin",
repo_url: "https://github.com/edx/git-plugin.git",
package: "git.hpi",
version: "4c2fb3517ca11b04dfc06c714530f885698fcfb7" }
version: "4dc0c5ce7d38855d0ab0d9cef9cd3325917d748b" }
jenkins_debian_pkgs:
- openjdk-7-jdk
......
......@@ -7,56 +7,61 @@
tags:
- jenkins
- name: jenkins_master | Create jenkins group
- name: jenkins_master | create jenkins group
group: name={{ jenkins_group }} state=present
- name: jenkins_master | Add the jenkins user to the group
- name: jenkins_master | add the jenkins user to the group
user: name={{ jenkins_user }} append=yes groups={{ jenkins_group }}
- name: jenkins_master | Download Jenkins package
# Should be resolved in the next release, but until then we need to do this
# https://issues.jenkins-ci.org/browse/JENKINS-20407
- name: jenkins_master | workaround for JENKINS-20407
command: "mkdir -p /var/run/jenkins"
- name: jenkins_master | download Jenkins package
get_url: url="{{ jenkins_deb_url }}" dest="/tmp/{{ jenkins_deb }}"
- name: jenkins_master | Install Jenkins package
- name: jenkins_master | install Jenkins package
command: dpkg -i --force-depends "/tmp/{{ jenkins_deb }}"
- name: jenkins_master | Stop Jenkins
- name: jenkins_master | stop Jenkins
service: name=jenkins state=stopped
# Move /var/lib/jenkins to Jenkins home (on the EBS)
- name: jenkins_master | Move /var/lib/jenkins
- name: jenkins_master | move /var/lib/jenkins
command: mv /var/lib/jenkins {{ jenkins_home }}
creates={{ jenkins_home }}
- name: jenkins_master | Set owner for Jenkins home
- name: jenkins_master | set owner for Jenkins home
file: path={{ jenkins_home }} recurse=yes state=directory
owner={{ jenkins_user }} group={{ jenkins_group }}
# Symlink /var/lib/jenkins to {{ COMMON_DATA_DIR }}/jenkins
# since Jenkins will expect its files to be in /var/lib/jenkins
- name: jenkins_master | Symlink /var/lib/jenkins
- name: jenkins_master | symlink /var/lib/jenkins
file: src={{ jenkins_home }} dest=/var/lib/jenkins state=link
owner={{ jenkins_user }} group={{ jenkins_group }}
notify:
- jenkins_master | restart Jenkins
- name: jenkins_master | Make plugins directory
- name: jenkins_master | make plugins directory
sudo_user: jenkins
shell: mkdir -p {{ jenkins_home }}/plugins
# We first download the plugins to a temp directory and include
# the version in the file name. That way, if we increment
# the version, the plugin will be updated in Jenkins
- name: jenkins_master | Download Jenkins plugins
get_url: url=http://updates.jenkins-ci.org/download/plugins/${item.name}/${item.version}/${item.name}.hpi
dest=/tmp/${item.name}_${item.version}
- name: jenkins_master | download Jenkins plugins
get_url: url=http://updates.jenkins-ci.org/download/plugins/{{ item.name }}/{{ item.version }}/{{ item.name }}.hpi
dest=/tmp/{{ item.name }}_{{ item.version }}
with_items: "{{ jenkins_plugins }}"
- name: jenkins_master | Install Jenkins plugins
command: cp /tmp/${item.name}_${item.version} {{ jenkins_home }}/plugins/${item.name}.hpi
- name: jenkins_master | install Jenkins plugins
command: cp /tmp/{{ item.name }}_{{ item.version }} {{ jenkins_home }}/plugins/{{ item.name }}.hpi
with_items: "{{ jenkins_plugins }}"
- name: jenkins_master | Set Jenkins plugin permissions
file: path={{ jenkins_home }}/plugins/${item.name}.hpi
- name: jenkins_master | set Jenkins plugin permissions
file: path={{ jenkins_home }}/plugins/{{ item.name }}.hpi
owner={{ jenkins_user }} group={{ jenkins_group }} mode=700
with_items: "{{ jenkins_plugins }}"
notify:
......@@ -66,23 +71,23 @@
# certain issues. If these changes get merged
# upstream, we may be able to use the regular plugin install process.
# Until then, we compile and install the forks ourselves.
- name: jenkins_master | Checkout custom plugin repo
git: repo=${item.repo_url} dest=/tmp/${item.repo_name} version=${item.version}
- name: jenkins_master | checkout custom plugin repo
git: repo={{ item.repo_url }} dest=/tmp/{{ item.repo_name }} version={{ item.version }}
with_items: "{{ jenkins_custom_plugins }}"
- name: jenkins_master | Compile custom plugins
command: mvn -Dmaven.test.skip=true install chdir=/tmp/${item.repo_name}
- name: jenkins_master | compile custom plugins
command: mvn -Dmaven.test.skip=true install chdir=/tmp/{{ item.repo_name }}
with_items: "{{ jenkins_custom_plugins }}"
- name: jenkins_master | Install custom plugins
command: mv /tmp/${item.repo_name}/target/${item.package}
{{ jenkins_home }}/plugins/${item.package}
- name: jenkins_master | install custom plugins
command: mv /tmp/{{ item.repo_name }}/target/{{ item.package }}
{{ jenkins_home }}/plugins/{{ item.package }}
with_items: "{{ jenkins_custom_plugins }}"
notify:
- jenkins_master | restart Jenkins
- name: jenkins_master | Set custom plugin permissions
file: path={{ jenkins_home }}/plugins/${item.package}
- name: jenkins_master | set custom plugin permissions
file: path={{ jenkins_home }}/plugins/{{ item.package }}
owner={{ jenkins_user }} group={{ jenkins_group }} mode=700
with_items: "{{ jenkins_custom_plugins }}"
......@@ -91,12 +96,12 @@
# Jenkins will overwrite updated plugins with its built-in version
# unless we create a ".pinned" file for the plugin.
# See https://issues.jenkins-ci.org/browse/JENKINS-13129
- name: jenkins_master | Create plugin pin files
command: touch {{ jenkins_home }}/plugins/${item}.jpi.pinned
creates={{ jenkins_home }}/plugins/${item}.jpi.pinned
- name: jenkins_master | create plugin pin files
command: touch {{ jenkins_home }}/plugins/{{ item }}.jpi.pinned
creates={{ jenkins_home }}/plugins/{{ item }}.jpi.pinned
with_items: "{{ jenkins_bundled_plugins }}"
- name: jenkins_master | Setup nginix vhost
- name: jenkins_master | setup nginix vhost
template:
src=etc/nginx/sites-available/jenkins.j2
dest=/etc/nginx/sites-available/jenkins
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment