-
Notifications
You must be signed in to change notification settings - Fork 6
/
.travis.yml
42 lines (36 loc) · 1.33 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
---
language: python
python: "2.7"
cache: pip
env:
- SITE=test.yml
before_install:
# Make sure everything's up to date.
- sudo apt-get update -qq
# Ensure that pip is up to date
- pip install --upgrade pip
install:
# Install Ansible.
- pip install ansible ansible-lint
# Add ansible.cfg to pick up roles path.
- "{ echo '[defaults]'; echo 'roles_path = ../'; } >> ansible.cfg"
#
# Add callback plugins
#
- mkdir -p ~/.ansible/plugins/callback_plugins
# This plugin makes the output easier to read
- wget -O ~/.ansible/plugins/callback_plugins/human_log.py https://gist.githubusercontent.com/cliffano/9868180/raw/f360f306b3c6d689734a6aa8773a00edf16a0054/human_log.py
script:
# Check the role/playbook's syntax.
- ansible-playbook -i tests/inventory tests/test.yml --syntax-check --list-tasks
# Complete a lint check on the playbook/role
- ansible-lint tests/test.yml
# Run the role/playbook with ansible-playbook.
- ansible-playbook -i tests/inventory tests/test.yml --sudo
# Run the role/playbook again, checking to make sure it's idempotent.
- >
ansible-playbook -i tests/inventory tests/test.yml --sudo
| grep -q 'changed=0.*failed=0'
&& (echo 'Idempotence test: pass' && exit 0)
|| (echo 'Idempotence test: fail' && exit 1)
# Ideally we should add a functional test of some sort here