From 5dfbb96a4f82d288c90938838f1853e86aeb04a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hannes=20K=C3=B6rber?= Date: Tue, 8 Dec 2020 23:41:35 +0100 Subject: [PATCH] Add testing in docker --- Makefile | 6 +++++- playbook.yml | 4 ++-- test-in-docker.sh | 40 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 3 deletions(-) create mode 100755 test-in-docker.sh diff --git a/Makefile b/Makefile index a719735..2cee6f2 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ requirements = requirements.txt activate = . $(venv)/bin/activate pip = pip ansible = venv/bin/ansible-playbook -ansible_run = $(activate) && ansible-playbook --inventory localhost, --diff --verbose ./playbook.yml +ansible_run = $(activate) && ansible-playbook --inventory localhost, --diff --verbose ./playbook.yml ${ANSIBLE_EXTRA_ARGS} .PHONY: all all: $(ansible) @@ -40,6 +40,10 @@ dotfiles: $(ansible) clean: rm -rf venv +.PHONY: test +test: + ./test-in-docker.sh + $(ansible): venv venv: diff --git a/playbook.yml b/playbook.yml index 042a507..0eb5ec4 100644 --- a/playbook.yml +++ b/playbook.yml @@ -192,7 +192,7 @@ name: "{{ item }}" with_items: "{{ disable_services }}" become: true - when: manage_services|bool|default(true) + when: manage_services|default(true)|bool - set_fact: enable_services: @@ -226,7 +226,7 @@ name: "{{ item }}" with_items: "{{ enable_services }}" become: true - when: manage_services|bool|default(true) + when: manage_services|default(true)|bool - name: get systemd boot target command: systemctl get-default diff --git a/test-in-docker.sh b/test-in-docker.sh new file mode 100755 index 0000000..f751197 --- /dev/null +++ b/test-in-docker.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env bash + +set -o nounset +set -o errexit + +tmpdir="$(mktemp -d)" +tmpdir=/tmp/dotfiles + +git archive --format tar --output "${tmpdir}/dotfiles.tar" HEAD + +git submodule foreach 'bash -x -c " + set -o errexit + git archive --prefix $path/ HEAD --output '"${tmpdir}/submod.tar"' + tar -i --concatenate --file='"${tmpdir}/dotfiles.tar"' '"${tmpdir}/submod.tar"' + rm '"${tmpdir}/submod.tar"' + "' + +gzip -k -f -v "${tmpdir}/dotfiles.tar" + +exit 1 + +docker pull docker.io/library/archlinux:base +docker run -ti --rm -v ${tmpdir}/dotfiles.tar.gz:/tmp/dotfiles.tar.gz:ro --hostname ares docker.io/library/archlinux:base sh -c '" + set -o errexit + + pacman -Syu --noconfirm python3 + cd $(mktemp -d) + tar xf /tmp/dotfiles.tar.gz -C . + ANSIBLE_EXTRA_ARGS="-e manage_services=false" ./bootstrap.sh + read -p "Done, [return] to continue " +' + +docker pull docker.io/library/ubuntu:18.04 +docker run -ti --rm -v ${tmpdir}/dotfiles.tar.gz:/tmp/dotfiles.tar.gz:ro --hostname tb-hak docker.io/library/ubuntu:18.04 sh -c ' + set -o errexit + + cd $(mktemp -d) + tar xf /tmp/dotfiles.tar.gz -C . + ANSIBLE_EXTRA_ARGS="-e manage_services=false" ./bootstrap.sh +'