diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..2b1c91e --- /dev/null +++ b/.travis.yml @@ -0,0 +1,54 @@ +--- +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 + - 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 + +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}":/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' + +after_success: + # Clean up. + - 'sudo docker stop "$(cat ${container_id})"' diff --git a/common/components/conda_env/tasks/main.yml b/common/components/conda_env/tasks/main.yml index 818b98d..51f0301 100644 --- a/common/components/conda_env/tasks/main.yml +++ b/common/components/conda_env/tasks/main.yml @@ -7,7 +7,7 @@ - anaconda_install_dir is defined - name: Load existing environments (1/2) - command: "conda info --envs --json" + command: "{{ anaconda_install_dir }}/bin/conda info --envs --json" register: tmp_out - name: Load existing environments (2/2) @@ -16,7 +16,7 @@ - name: Install new environment {{ anaconda_install_dir}}/envs/{{ conda_env_name }} - command: 'conda create -y -q --json -n {{ conda_env_name }} {{ conda_env_interpreter }} ipykernel {{ conda_env_packages | join(" ") }}' + command: '{{ anaconda_install_dir }}/bin/conda create -y -q --json -n {{ conda_env_name }} {{ conda_env_interpreter }} ipykernel {{ conda_env_packages | join(" ") }}' when: "(anaconda_install_dir ~ '/envs/' ~ conda_env_name) not in tmp_conda_envs_present and conda_env_base is not defined" #- name: Clone existing environment {{ conda_env_base }} to {{ anaconda_install_dir }}/envs/{{ conda_env_name }} diff --git a/common/components/monitoring/tests/test.yml b/common/components/monitoring/tests/test.yml new file mode 100644 index 0000000..e4a55d3 --- /dev/null +++ b/common/components/monitoring/tests/test.yml @@ -0,0 +1,5 @@ +--- +- hosts: all + + roles: + - role_under_test \ No newline at end of file