diff options
-rw-r--r-- | testing/README.md | 7 | ||||
-rw-r--r-- | testing/buildbot.hosts | 1 | ||||
-rw-r--r-- | testing/buildbot.yml | 80 |
3 files changed, 88 insertions, 0 deletions
diff --git a/testing/README.md b/testing/README.md new file mode 100644 index 0000000..bb81ce2 --- /dev/null +++ b/testing/README.md @@ -0,0 +1,7 @@ +Here lie various files related to SCons that +can not find the place in other directories: + + buildbot.yml - Ansible playbook to set up + buildbot for running tests + + buildbot.hosts - Ansible inventory file diff --git a/testing/buildbot.hosts b/testing/buildbot.hosts new file mode 100644 index 0000000..3e0be7d --- /dev/null +++ b/testing/buildbot.hosts @@ -0,0 +1 @@ +localhost ansible_connection=local builder=xxx pass=xxx
\ No newline at end of file diff --git a/testing/buildbot.yml b/testing/buildbot.yml new file mode 100644 index 0000000..81c2143 --- /dev/null +++ b/testing/buildbot.yml @@ -0,0 +1,80 @@ +# Ansible playbook to setup buildbot instance. +# Edit buildbot.hosts to set builder and pass variables. +# Then exec: +# +# ansible-playbook -i buildbot.hosts buildbot.yml +# +# botuser can be overridden from command line: +# +# ansible-playbook -i hosts buildbot.yml -e 'botuser=sconsy' +# +# Tested with Ansible 1.5.0, based on +# http://scons.org/wiki/InstallingBuildbotSlaves +# Send questions to: +# +# anatoly techtonik <techtonik@gmail.com> +# +--- +# host is overridable with --extra-vars 'host=address' +- hosts: "{{ host | default('localhost') }}" + vars: + # botuser can be overridden with -e 'botuser=scons2' + - botuser: scons + - hgrc: /home/{{ botuser }}/.hgrc + - venv: /home/{{ botuser }}/buildbot-virtualenv + - work: /home/{{ botuser }}/buildbot-workdir + + vars_prompt: + - name: maintainer + prompt: contact details of the builbot owner + default: name <mail@example.com> + private: no + + tasks: + # --- install requirements --- + - name: ubuntu/debian - make sure mercurial is installed + apt: pkg={{ item }} + with_items: + - mercurial + - python-virtualenv + + # --- enable mercurial purge extension --- + - name: create .hgrc if necessary + stat: path={{ hgrc }} + register: st + - file: path={{ hgrc }} owner={{ botuser }} state=touch + when: not st.stat.exists + - name: enable mercurial purge extension + ini_file: dest={{ hgrc }} + section=extensions option=hgext.purge + value= + + - name: install buildbot-slave in virtualenv + pip: name=buildbot-slave virtualenv={{ venv }} + + - name: create buildbot environment + command: "{{ venv }}/bin/buildslave create-slave + {{ work }} buildbot.scons.org:9989 {{ builder }} {{ pass }} + creates={{ work }}" + sudo: yes + sudo_user: "{{ botuser }}" + + - name: set contact details of the buildbot owner + copy: dest="{{ work }}/info/admin" content="{{ maintainer }}" + notify: + - restart buildbot + + - name: update host information + copy: dest="{{ work }}/info/host" + content="{{ansible_lsb.description}} + {{'\n'}}{{ansible_machine}} + {{'\n'}}{{ansible_memtotal_mb}}MB RAM + {{'\n'}}Python {{ansible_python_version}}" + notify: + - restart buildbot + + handlers: + - name: restart buildbot + command: "{{ venv }}/bin/buildslave restart {{ work }}" + sudo: yes + sudo_user: "{{ botuser }}" |