[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/pdf-tools e6d1df44a1 1/2: Speed up server testing by keepi
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/pdf-tools e6d1df44a1 1/2: Speed up server testing by keeping the containers around |
Date: |
Thu, 6 Oct 2022 06:59:04 -0400 (EDT) |
branch: elpa/pdf-tools
commit e6d1df44a1a49e9c35c0153bbe219a7303c3d762
Author: Vedang Manerikar <ved.manerikar@gmail.com>
Commit: Vedang Manerikar <ved.manerikar@gmail.com>
Speed up server testing by keeping the containers around
This allows re-using containers, saving a tremendous amount of time.
The drawback here is that any environment change (on the docker /
podman containers side) is not detected. The way to deal with this
will be to create a process around major releases where I delete all
the containers and re-test from scratch.
Relates to: #130
---
server/test/Makefile | 27 ++++++++++++++++++---------
server/test/docker/.gitignore | 1 +
2 files changed, 19 insertions(+), 9 deletions(-)
diff --git a/server/test/Makefile b/server/test/Makefile
index 4946458c61..12b18ec041 100644
--- a/server/test/Makefile
+++ b/server/test/Makefile
@@ -7,12 +7,14 @@ DOCKER_OS = $(patsubst %.Dockerfile.in, %, \
$(notdir $(wildcard docker/templates/*.Dockerfile.in)))
# Arguments to pass to docker build .
-DOCKER_BUILD_ARGS = -q
+DOCKER_BUILD_ARGS = -q -t
# Advice make not to delete these "intermediate" files.
-.PRECIOUS: docker/%.Dockerfile docker/.%.build
+.PRECIOUS: docker/%.Dockerfile docker/.%.build docker/.%.container
-.PHONY: all test check docker/build
+# Avoid conflicts with real files
+SUBDIRS = docker
+.PHONY: subdirs $(SUBDIRS)
all: docker/test
test: docker/test
@@ -24,16 +26,22 @@ docker/%.Dockerfile: docker/templates/%.Dockerfile.in \
@echo Creating Dockerfile for target $*
cat $^ > $@
-# Build the Dockerfile
+# Build the Docker Image
docker/.%.build: docker/%.Dockerfile ../autobuild docker/lib
- @echo Building target $*
- podman image build $(DOCKER_BUILD_ARGS) -t epdfinfo/$* -f $< ../ ||
exit 0
+ @echo Building target image $*
+ podman image build $(DOCKER_BUILD_ARGS) epdfinfo/$* -f $< ../
touch $@
-# Run the Dockerfile
-docker/%: docker/.%.build
+# Build the Docker Container
+docker/.%.container: docker/.%.build
+ @echo Building target container $*
+ podman container create $(DOCKER_BUILD_ARGS) --name epdfinfo-$*
epdfinfo/$*
+ touch $@
+
+# Run the Containers generated by the dockerfile
+docker/%: docker/.%.container
@echo Running tests on target $*
- podman container run --rm --name epdfinfo-$* epdfinfo/$*
+ podman container start -a epdfinfo-$*
# Run all Dockerfiles
docker/test: docker/build $(patsubst %, docker/%, $(DOCKER_OS))
@@ -49,6 +57,7 @@ docker/clean: $(patsubst %, docker/.%.clean, $(DOCKER_OS))
clean: docker/clean
rm -f -- docker/.[^.]*.build
+ rm -f -- docker/.[^.]*.container
rm -f -- docker/*.Dockerfile
print:
diff --git a/server/test/docker/.gitignore b/server/test/docker/.gitignore
index a6d9461055..d7dc3184b1 100644
--- a/server/test/docker/.gitignore
+++ b/server/test/docker/.gitignore
@@ -1,2 +1,3 @@
*.Dockerfile
*.build
+*.container