emacs-elpa-diffs
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]