Add testing in docker
This commit is contained in:
6
Makefile
6
Makefile
@@ -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:
|
||||||
|
|||||||
@@ -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
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