Add testing in docker
This commit is contained in:
6
Makefile
6
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:
|
||||
|
||||
@@ -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
|
||||
|
||||
40
test-in-docker.sh
Executable file
40
test-in-docker.sh
Executable 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
|
||||
'
|
||||
Reference in New Issue
Block a user