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