Skip to content

Commit

Permalink
Feature/travis integration (#27)
Browse files Browse the repository at this point in the history
* Add slack notification

* Try disabling yum update because of time
  • Loading branch information
stefanvanwouw committed Dec 14, 2016
1 parent 220d6a2 commit e260762
Showing 1 changed file with 45 additions and 65 deletions.
110 changes: 45 additions & 65 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,71 +1,51 @@
---
sudo: required

env:
- distro: centos7
init: /usr/lib/systemd/systemd
run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
playbook: provision.yml
inventory: example-inventory/dev
working_dir: data-science-box
IP: 10.0.0.42
- distro: centos7
init: /usr/lib/systemd/systemd
run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
playbook: provision.yml
inventory: example-inventory/dev
working_dir: data-science-hub
IP: 10.0.0.43
- distro: centos7
init: /usr/lib/systemd/systemd
run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
playbook: dev-cluster.yml
inventory: example-inventory/dev
working_dir: data-science-cluster
IP: 10.0.0.44
- distro: centos7
init: /usr/lib/systemd/systemd
run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
playbook: provision.yml
inventory: example-inventory/dev
working_dir: search-box
IP: 10.0.0.21

- distro: centos7
init: /usr/lib/systemd/systemd
run_opts: --privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro
playbook: provision.yml
inventory: example-inventory/dev
working_dir: data-science-box
IP: 10.0.0.42
- distro: centos7
init: /usr/lib/systemd/systemd
run_opts: --privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro
playbook: provision.yml
inventory: example-inventory/dev
working_dir: data-science-hub
IP: 10.0.0.43
- distro: centos7
init: /usr/lib/systemd/systemd
run_opts: --privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro
playbook: dev-cluster.yml
inventory: example-inventory/dev
working_dir: data-science-cluster
IP: 10.0.0.44
- distro: centos7
init: /usr/lib/systemd/systemd
run_opts: --privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro
playbook: provision.yml
inventory: example-inventory/dev
working_dir: search-box
IP: 10.0.0.21
services:
- docker

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

- sudo docker pull geerlingguy/docker-${distro}-ansible:latest
script:
- container_id=$(mktemp)
- 'docker network create --driver=bridge --subnet=10.0.0.0/16 my-net'
# Run container in detached state.
- 'sudo docker run --detach --network=my-net --ip=${IP} --volume="${PWD}":/opt/bdr-infra-stack:ro ${run_opts} geerlingguy/docker-${distro}-ansible:latest "${init}" > "${container_id}"'

# Install required tools (to be added to ansible script prerequisites).
- 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm /bin/bash -c "yum update -y && yum install -y bzip2 libselinux-python libselinux selinux-policy-targeted selinux-policy libselinux-utils"'



# Ansible syntax check.
- 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm /bin/bash -c "cd /opt/bdr-infra-stack/${working_dir} && ansible-playbook ${playbook} -i ${inventory} --syntax-check"'

# Test role.
- 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm /bin/bash -c "cd /opt/bdr-infra-stack/${working_dir} && ansible-playbook ${playbook} -i ${inventory}"'

# Test role idempotence.
#- idempotence=$(mktemp)
#- sudo docker exec "$(cat ${container_id})" /bin/bash -c "cd /opt/bdr-infra-stack/${working_dir} && ansible-playbook ${playbook} -i ${inventory}" | tee -a ${idempotence}
#- >
# tail ${idempotence}
# | grep -q 'changed=0.*failed=0'
# && (echo 'Idempotence test: pass' && exit 0)
# || (echo 'Idempotence test: fail' && exit 1)
# Ensure HTOP is installed.
#- 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm which htop'

- container_id=$(mktemp)
- docker network create --driver=bridge --subnet=10.0.0.0/16 my-net
- sudo docker run --detach --network=my-net --ip=${IP} --volume="${PWD}":/opt/bdr-infra-stack:ro
${run_opts} geerlingguy/docker-${distro}-ansible:latest "${init}" > "${container_id}"
- sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm /bin/bash -c "yum install -y bzip2 libselinux-python libselinux selinux-policy-targeted
selinux-policy libselinux-utils"
- sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm /bin/bash -c "cd
/opt/bdr-infra-stack/${working_dir} && ansible-playbook ${playbook} -i ${inventory}
--syntax-check"
- sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm /bin/bash -c "cd
/opt/bdr-infra-stack/${working_dir} && ansible-playbook ${playbook} -i ${inventory}"
after_success:
# Clean up.
- 'sudo docker stop "$(cat ${container_id})"'
- sudo docker stop "$(cat ${container_id})"
notifications:
slack:
secure: G3rBT3RFoSsDotRVayUH5D1q449ImstYuys1Ho1wpswP33FY5usOu8Qv3+CFG/GThFIUuROJ4dSkuembzBSG1aBsd4G3LqG+wu/X4fzMSgiQ0HykiKYPWbm96nq7xmmkB9KiC3dhBBvNYPdn27jY/UEXyETnArd1lnKnj5FXiEhHsTve9xi/7Cjsf9115qZKKcnD1r40+CXgLBMMWTbe99xas/N9+p56r6mGMdDhr2cagV6Y+chBi5UtQj7WOgN8bXVyXHp+mSiPsW7p/9CfLRFCHZgPICp9SQ2JcF+gK3qpFtEDy407xsh8ErzX1DqZC9stHL+glIPa+Dwq306k7P9YOXeN5QqVGDQk5HoWwndV0Jiyh1XWGPFQKle8ozFiEPG20366WSt2d8D7UkLgkg8wPh5DdbBv4HD46d4/nDJqa+vbYnPVBU3faf/ZOUSJwQAsez8IfVOI3/dsbmsG2tFsc7EFJsw7DBwLI4xiquEhngOs/H+napM/MmgPRm6xn4AHmEmKfmGQcnJvYNnNtnQwxestRF6x8pw6zq7TF0VEAqttAfbn6j+ciMZlonmCDhEUXda7bwYEF8JYSpo0B2zo/n1dXX0YeJwR8XJLu6bUMu60ze+rfl2Ymmh9WDhcNcbMUKtf1GEqUMbe0gVvJx1RB1Q6XnBNY897mn6i0As=

0 comments on commit e260762

Please sign in to comment.