Install private jenkins for CD jobs
[icn.git] / ci / roles / jenkins-config / tasks / jenkins_gerrit.yaml
1 ---
2 - name: restart jenkins to use new installed plugins
3   meta: flush_handlers
4
5 - name: Wait for Jenkins to start up before proceeding.
6   command: >
7     curl -D - --silent --max-time 5 http://{{ jenkins_hostname }}:{{ jenkins_http_port }}{{ jenkins_url_prefix }}/cli/
8   args:
9     warn: false
10   register: result
11   until: >
12     (result.stdout.find("403 Forbidden") != -1)
13     or (result.stdout.find("200 OK") != -1)
14     and (result.stdout.find("Please wait while") == -1)
15   retries: "{{ jenkins_connection_retries | default(60) }}"
16   delay: "{{ jenkins_connection_delay | default(5) }}"
17   changed_when: false
18   check_mode: false
19
20 - name: create directory /var/lib/jenkins/.ssh
21   file:
22     path: /var/lib/jenkins/.ssh
23     owner: jenkins
24     group: jenkins
25     state: directory
26
27 - name: place gerrit ssh key
28   copy:
29     src: "{{ gerrit_key_path | default('gerrit.key') }}"
30     dest: /var/lib/jenkins/.ssh/gerrit.key
31     owner: jenkins
32     group: jenkins
33     mode: '0600'
34   tags: [gerrit]
35
36 - name: grant jenkins user sudo
37   copy:
38     content: "jenkins        ALL=(ALL)       NOPASSWD: ALL"
39     dest: /etc/sudoers.d/jenkins
40     owner: root
41     group: root
42     mode: '0660'
43   tags: [gerrit]
44
45 - name: add gerrit server
46   jenkins_script:
47     script: "{{lookup('file', 'gerrit.groovy')}}"
48     url: "http://{{ jenkins_hostname }}:{{ jenkins_http_port }}{{ jenkins_url_prefix }}"
49     user: "{{ jenkins_admin_username }}"
50     password: "{{ jenkins_admin_password }}"
51     validate_certs: no
52   register: result
53   failed_when: "'Result: success\n' != result.output"
54   tags: [gerrit]
55
56 - name: Install python-pip
57   apt:
58     name: python-pip
59   tags: [jobs]
60
61 - name: Install python-jenkins and lxml(required by jenkins_job module)
62   pip:
63     name:
64       - python-jenkins
65       - lxml
66   tags: [jobs]
67
68 - name: Add pipeline job for ICN CI
69   jenkins_job:
70     name: icn_check
71     config: "{{lookup('file', 'icn_check.xml')}}"
72     url: "http://{{ jenkins_hostname }}:{{ jenkins_http_port }}{{ jenkins_url_prefix }}"
73     user: "{{ jenkins_admin_username }}"
74     password: "{{ jenkins_admin_password }}"
75   tags: [jobs]