Skip to content
This repository has been archived by the owner on Jan 17, 2021. It is now read-only.

introduce Travis tests #19

Open
wants to merge 3 commits into
base: stable
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 61 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
---
sudo: required

env:
- distro: ubuntu1604
init: /lib/systemd/systemd
run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
- distro: ubuntu1404
init: /sbin/init
run_opts: ""
- distro: centos7
init: /usr/lib/systemd/systemd
run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
- distro: centos6
init: /sbin/init
run_opts: ""

services:
- docker

before_install:
# Pull container.
- 'sudo docker pull geerlingguy/docker-${distro}-ansible:latest'

script:
- container_id=$(mktemp)
# Run container in detached state.
- 'sudo docker run --detach --volume="${PWD}":/etc/ansible/roles/seafile:ro ${run_opts} geerlingguy/docker-${distro}-ansible:latest "${init}" > "${container_id}"'

# Ansible show version
- 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible --version'

# Ansible syntax check.
- 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-playbook /etc/ansible/roles/seafile/tests/test.yml --syntax-check'

# Test role.
- 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-playbook /etc/ansible/roles/seafile/tests/test.yml'

# Test role idempotence.
- idempotence=$(mktemp)
- sudo docker exec "$(cat ${container_id})" ansible-playbook /etc/ansible/roles/seafile/tests/test.yml | tee -a ${idempotence}
- >
tail ${idempotence}
| grep -q 'changed=0.*failed=0'
&& (echo 'Idempotence test: pass' && exit 0)
|| (echo 'Idempotence test: fail' && exit 1)

# Ensure Seafile is installed.
- 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm pgrep -f manage.py'
- 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm pgrep -f seafile-controller'
- 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm pgrep -f ccnet-server'
- 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm pgrep -f seaf-server'

after_success:
# Clean up.
- 'sudo docker stop "$(cat ${container_id})"'

notifications:
email: false
webhooks: https://galaxy.ansible.com/api/v1/notifications/

2 changes: 1 addition & 1 deletion defaults/main.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
# version to install
seafile_install_version: '5.0.0'
seafile_install_version: '6.0.4'
seafile_install_version_beta: False

# distribution download info
Expand Down
2 changes: 2 additions & 0 deletions tasks/1_prerequisites.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
apt:
name: '{{ item }}'
state: latest
update_cache: True
cache_valid_time: 300
with_items: DEPENDENCY_PACKAGES_APT
when: ansible_pkg_mgr == 'apt'

Expand Down
6 changes: 6 additions & 0 deletions tests/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
- hosts: all

roles:
- role: seafile