Skip to content

Commit

Permalink
Ansible playbook for installing Zcash dependencies and Buildbot worker
Browse files Browse the repository at this point in the history
  • Loading branch information
str4d committed Jul 5, 2017
1 parent d6ec395 commit 6db418c
Show file tree
Hide file tree
Showing 3 changed files with 99 additions and 0 deletions.
4 changes: 4 additions & 0 deletions contrib/ci-workers/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Zcash CI workers

This folder contains the Ansible playbooks for configuring a fresh OS
installation for use as a Buildbot worker in Zcash's CI.
56 changes: 56 additions & 0 deletions contrib/ci-workers/unix.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
- name: Configure a Buildbot worker for Zcash CI
hosts: zcash-ci-worker-unix
become: true
gather_facts: False

pre_tasks:
- set_fact:
python_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)"
- name: Install Python 2 for Ansible and Buildbot [bash]
raw: bash -c "'{{ python_raw }}'"
ignore_errors: true
register: output
changed_when:
- output.stdout != ""
- output.stdout != "\r\n"
- name: Install Python 2 for Ansible and Buildbot [tcsh]
raw: tcsh -c "{{ python_raw }}"
ignore_errors: true
register: output
changed_when:
- output.stdout != ""
- output.stdout != "\r\n"
- name: Gathering Facts
setup:

tasks:
- name: Get default dependencies
include_vars: "vars/default.yml"

- 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 }}"
39 changes: 39 additions & 0 deletions contrib/ci-workers/vars/default.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
# These variables can be overridden in distribution files.

# Dependencies required to install Buildbot
buildbot_deps:
- python-pip # So we can install Python modules

# Dependencies required to download files
fetch_deps:
- git
- wget # For zcutil/fetch-params.sh

# Dependencies required to configure Zcash
conf_deps:
- autoconf
- automake
- m4

# Dependencies required to compile Zcash
build_deps:
- g++
- gcc
- make

# Dependencies required to link Zcash
link_deps:
- libtool

# Additional distribution-specific dependencies
dist_deps: []

# Python modules required for a Zcash Buildbot worker
buildbot_modules:
- pip # Needs to be updated first so Buildbot installs
- buildbot-worker

# Python modules required to run the Zcash RPC test suite
rpc_test_modules:
- pyzmq

0 comments on commit 6db418c

Please sign in to comment.