diff options
Diffstat (limited to 'testing/buildbot.yml')
-rw-r--r-- | testing/buildbot.yml | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/testing/buildbot.yml b/testing/buildbot.yml new file mode 100644 index 0000000..7e6bb1a --- /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 +# https://github.com/SCons/scons/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 }}" |