Add testing in docker

This commit is contained in:
2020-12-08 23:41:35 +01:00
parent a80f46a525
commit 5dfbb96a4f
3 changed files with 47 additions and 3 deletions

View File

@@ -3,7 +3,7 @@ requirements = requirements.txt
activate = . $(venv)/bin/activate activate = . $(venv)/bin/activate
pip = pip pip = pip
ansible = venv/bin/ansible-playbook 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 .PHONY: all
all: $(ansible) all: $(ansible)
@@ -40,6 +40,10 @@ dotfiles: $(ansible)
clean: clean:
rm -rf venv rm -rf venv
.PHONY: test
test:
./test-in-docker.sh
$(ansible): venv $(ansible): venv
venv: venv:

View File

@@ -192,7 +192,7 @@
name: "{{ item }}" name: "{{ item }}"
with_items: "{{ disable_services }}" with_items: "{{ disable_services }}"
become: true become: true
when: manage_services|bool|default(true) when: manage_services|default(true)|bool
- set_fact: - set_fact:
enable_services: enable_services:
@@ -226,7 +226,7 @@
name: "{{ item }}" name: "{{ item }}"
with_items: "{{ enable_services }}" with_items: "{{ enable_services }}"
become: true become: true
when: manage_services|bool|default(true) when: manage_services|default(true)|bool
- name: get systemd boot target - name: get systemd boot target
command: systemctl get-default command: systemctl get-default

40
test-in-docker.sh Executable file
View File

@@ -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
'