diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000..fa673617d --- /dev/null +++ b/.travis.yml @@ -0,0 +1,42 @@ +--- +language: python +python: "2.7" + +# Use the new container infrastructure +sudo: false + +# Install ansible +addons: + apt: + packages: + - python-pip + +install: + # Install ansible, ansible-lint and ansible-review + - pip install ansible + - pip install ansible-review + + # Check ansible, version + - ansible --version + - ansible-lint --version + - ansible-review --version + + # Create ansible.cfg with correct roles_path + - printf '[defaults]\nroles_path=../' >ansible.cfg + +script: + # Continuous integration: syntax check + - ansible-playbook tests/test.yml -i tests/inventory --syntax-check -vvv + + # Continous integration: ansible-list + - ansible-lint -p *yml + + # Continous integration: ansible code review + - git ls-files *yml roles/ vars/ tests/ | xargs ansible-review + + # Continouse integration: ansible code review of changes between master and current branch + - git diff master | ansible-review + + +#notifications: +# webhooks: diff --git a/README.md b/README.md index 3de62a82f..1b8c20f5b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Internet-in-a-Box (IIAB) +# Internet-in-a-Box (IIAB) [![Build Status](https://travis-ci.org/iiab/iiab.svg?branch=master)](https://travis-ci.org/iiab/iiab) Welcome to the Git repository of the Internet-in-a-Box (IIAB) project. This is a community-based project developed and supported by volunteers from around the world. The Internet-in-a-Box (IIAB) is small, inexpensive device which provides essential Internet resources (like Wikipedia, OpenStreetMap, Khan Academy and others) without any Internet connection. It provides a local content server of the world’s Free Knowledge. diff --git a/roles/2-common/tasks/centos.yml b/roles/2-common/tasks/centos.yml index 6a000ba63..70b653742 100644 --- a/roles/2-common/tasks/centos.yml +++ b/roles/2-common/tasks/centos.yml @@ -19,11 +19,11 @@ - iiab-centos.repo - li.nux.ro.repo -- name: Disable updating ansible on CentOS - shell: sed -i -e '/^enabled=/a exclude=ansible' {{ item }} - with_items: - - /etc/yum.repos.d/CentOS-Base.repo - - /etc/yum.repos.d/CentOS-CR.repo - - /etc/yum.repos.d/CentOS-fasttrack.repo - - /etc/yum.repos.d/CentOS-Vault.repo - when: ansible_distribution == "CentOS" +#- name: Disable updating ansible on CentOS +# shell: sed -i -e '/^enabled=/a exclude=ansible' {{ item }} +# with_items: +# - /etc/yum.repos.d/CentOS-Base.repo +# - /etc/yum.repos.d/CentOS-CR.repo +# - /etc/yum.repos.d/CentOS-fasttrack.repo +# - /etc/yum.repos.d/CentOS-Vault.repo +# when: ansible_distribution == "CentOS" diff --git a/roles/2-common/tasks/fedora.yml b/roles/2-common/tasks/fedora.yml index abb864a78..2060c19ff 100644 --- a/roles/2-common/tasks/fedora.yml +++ b/roles/2-common/tasks/fedora.yml @@ -14,10 +14,10 @@ shell: yum --enablerepo=rpmfusion-free-updates install exfat-utils fuse-exfat when: exFAT_enabled == "True" -- name: Disable updating ansible on Fedora - shell: sed -i -e '/^enabled=/a exclude=ansible' {{ item }} - with_items: - - /etc/yum.repos.d/fedora.repo - - /etc/yum.repos.d/fedora-updates.repo - - /etc/yum.repos.d/fedora-updates-testing.repo - when: ansible_distribution == "Fedora" +#- name: Disable updating ansible on Fedora +# shell: sed -i -e '/^enabled=/a exclude=ansible' {{ item }} +# with_items: +# - /etc/yum.repos.d/fedora.repo +# - /etc/yum.repos.d/fedora-updates.repo +# - /etc/yum.repos.d/fedora-updates-testing.repo +# when: ansible_distribution == "Fedora" diff --git a/roles/moodle/tasks/main.yml b/roles/moodle/tasks/main.yml index bc1bee9c8..c8cebcf01 100644 --- a/roles/moodle/tasks/main.yml +++ b/roles/moodle/tasks/main.yml @@ -77,7 +77,7 @@ file: path=/etc/apache2/sites-enabled/022-moodle.conf src=/etc/apache2/sites-available/022-moodle.conf state=link - when: moodle_enabled and is_debuntu + when: moodle_enabled and is_debuntu - name: Disable moodle file: path=/etc/apache2/sites-enabled/022-moodle.conf diff --git a/roles/osm/tasks/main.yml b/roles/osm/tasks/main.yml index d0d3714aa..fa254d3d9 100644 --- a/roles/osm/tasks/main.yml +++ b/roles/osm/tasks/main.yml @@ -27,14 +27,14 @@ virtualenv={{ osm_venv }} virtualenv_site_packages=no version=2.6 - extra_args="--disable-pip-version-check" + extra_args="--disable-pip-version-check --no-cache-dir" when: internet_available - name: Install IIAB with dependencies pip: name={{ item }} virtualenv={{ osm_venv }} virtualenv_site_packages=no - extra_args="--disable-pip-version-check" + extra_args="--disable-pip-version-check --no-cache-dir" with_items: - MarkupSafe - pytz diff --git a/tests/inventory b/tests/inventory new file mode 100644 index 000000000..2fbb50c4a --- /dev/null +++ b/tests/inventory @@ -0,0 +1 @@ +localhost diff --git a/tests/test.yml b/tests/test.yml new file mode 100644 index 000000000..b1a6d5521 --- /dev/null +++ b/tests/test.yml @@ -0,0 +1,61 @@ +--- +- hosts: localhost + remote_user: root + # TODO: Making a anisble-iiab roles for ansible-galaxy + # roles: + # - iiab + # For now hardcoding all the roles manually with ls -l roles/ | cut -d " " -f 10 + roles: + - ../roles/1-prep + - ../roles/2-common + - ../roles/3-base-server + - ../roles/4-server-options + - ../roles/5-xo-services + - ../roles/6-generic-apps + - ../roles/7-edu-apps + - ../roles/8-mgmt-tools + - ../roles/9-local-addons + - ../roles/activity-server + - ../roles/ajenti + - ../roles/authserver + - ../roles/awstats + - ../roles/calibre + - ../roles/cups + - ../roles/debian_schooltool + - ../roles/docker + - ../roles/dokuwiki + - ../roles/ejabberd + - ../roles/ejabberd_xs + - ../roles/elgg + # Disabling gateway doesn't contain any tasks? + #- ../roles/gateway + - ../roles/httpd + - ../roles/idmgr + - ../roles/iiab-admin + - ../roles/kalite + - ../roles/kiwix + - ../roles/mongodb + - ../roles/monit + - ../roles/moodle + - ../roles/moodle-1.9 + - ../roles/munin + - ../roles/mysql + - ../roles/network + - ../roles/nextcloud + - ../roles/openvpn + - ../roles/osm + - ../roles/owncloud + - ../roles/pathagar + - ../roles/phpmyadmin + - ../roles/postgresql + - ../roles/rachel + - ../roles/samba + - ../roles/schooltool + - ../roles/sshd + - ../roles/sugarizer + - ../roles/sugar-stats + - ../roles/teamviewer + - ../roles/usb-lib + - ../roles/vnstat + - ../roles/wordpress + - ../roles/xovis