70 lines
2.6 KiB
YAML
70 lines
2.6 KiB
YAML
---
|
|
- name: Configure a Buildbot worker for Zcash CI
|
|
hosts: zcash-ci-worker-unix
|
|
become: true
|
|
gather_facts: False
|
|
|
|
vars_files:
|
|
- vars/default.yml
|
|
|
|
pre_tasks:
|
|
- name: Install Python 2 for Ansible and Buildbot
|
|
raw: test -e /usr/bin/python || test -e /usr/bin/python2 || test -e /usr/bin/python2.7 || test -e /usr/local/bin/python2.7 || (test -e /usr/bin/apt && apt -qqy update && apt install -qqy python) || (test -e /usr/bin/dnf && dnf install -qqy python2) || (test -e /usr/sbin/pkg && pkg install -qqy python2)
|
|
register: output
|
|
changed_when:
|
|
- output.stdout != ""
|
|
- output.stdout != "\r\n"
|
|
|
|
- name: Check if Python is in the configured location
|
|
raw: test -e {{ ansible_python_interpreter }}
|
|
ignore_errors: true
|
|
register: python_check
|
|
when: ansible_python_interpreter is defined
|
|
|
|
- name: Fail if configured Python is unavailable
|
|
fail:
|
|
msg: Python is not accessible at {{ ansible_python_interpreter }} on this host! Please set the inventory variable 'ansible_python_interpreter' to the location of the Python 2 binary.
|
|
when: ansible_python_interpreter is defined and python_check.rc == 1
|
|
|
|
- name: Check if Python is in the default location
|
|
raw: test -e /usr/bin/python
|
|
ignore_errors: true
|
|
register: python_check
|
|
when: ansible_python_interpreter is undefined
|
|
|
|
- name: Fail if default Python is unavailable
|
|
fail:
|
|
msg: Python is not accessible at /usr/bin/python on this host! Please set the inventory variable 'ansible_python_interpreter' to the location of the Python 2 binary.
|
|
when: ansible_python_interpreter is undefined and python_check.rc == 1
|
|
|
|
- name: Gathering Facts
|
|
setup:
|
|
|
|
tasks:
|
|
- name: Get dependencies for distribution
|
|
include_vars: "{{ item }}"
|
|
with_first_found:
|
|
- files:
|
|
- "vars/{{ ansible_distribution }}-{{ ansible_distribution_version }}.yml"
|
|
- "vars/{{ ansible_distribution }}-{{ ansible_distribution_major_version | int }}.yml"
|
|
- "vars/{{ ansible_distribution }}.yml"
|
|
- "vars/{{ ansible_os_family }}.yml"
|
|
skip: true
|
|
|
|
- name: Collate dependencies
|
|
set_fact:
|
|
package_deps: "{{ buildbot_deps + fetch_deps + conf_deps + build_deps + link_deps + dist_deps }}"
|
|
python_modules: "{{ buildbot_modules + rpc_test_modules }}"
|
|
|
|
- name: Install required packages
|
|
package:
|
|
name: "{{ item }}"
|
|
state: present
|
|
with_items: "{{ package_deps }}"
|
|
|
|
- name: Install required Python modules
|
|
pip:
|
|
name: "{{ item }}"
|
|
state: latest
|
|
with_items: "{{ python_modules }}"
|