diff options
Diffstat (limited to 'server')
| -rwxr-xr-x | server/autobuild | 42 | ||||
| -rw-r--r-- | server/test/.gitignore | 1 | ||||
| -rw-r--r-- | server/test/Makefile | 6 | ||||
| -rwxr-xr-x | server/test/docker/lib/run-tests | 21 | ||||
| -rw-r--r-- | server/test/docker/templates/Dockerfile.common.in | 6 | ||||
| -rw-r--r-- | server/test/docker/templates/emacs-26.Dockerfile.in | 5 | ||||
| -rw-r--r-- | server/test/docker/templates/emacs-27.Dockerfile.in | 5 | ||||
| -rw-r--r-- | server/test/docker/templates/emacs-28.Dockerfile.in | 5 | ||||
| -rw-r--r-- | server/test/docker/templates/emacs-29.Dockerfile.in | 5 |
9 files changed, 86 insertions, 10 deletions
diff --git a/server/autobuild b/server/autobuild index d9f7975..517a30c 100755 --- a/server/autobuild +++ b/server/autobuild @@ -239,6 +239,17 @@ os_freebsd() { return 0 } +# NetBSD +os_netbsd() { + if ! which uname >/dev/null 2>&1 || [ "$(uname -s)" != "NetBSD" ]; then + return 1 + fi + PKGCMD=pkgin + PKGARGS=install + PACKAGES="autoconf automake poppler-glib png pkgconf" + return 0 +} + # OpenBSD os_openbsd() { if ! which uname >/dev/null 2>&1 || [ "$(uname -s)" != "OpenBSD" ]; then @@ -353,7 +364,7 @@ os_macos() { PKG_INSTALL_AS_ROOT= # brew installs libffi as keg-only, meaning we need to set # PKG_CONFIG_PATH manually so configure can find it - export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:$(brew --prefix libffi)/lib/pkgconfig/" + export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:$(brew --prefix libffi)/lib/pkgconfig/:$(brew --prefix zlib)/lib/pkgconfig/" elif which port >/dev/null 2>&1; then PKGCMD=port PKGARGS=install @@ -455,6 +466,28 @@ os_opensuse() { return 0 } +# Alpine Linux +os_alpine() { + if [ -f "/etc/os-release" ]; then + . /etc/os-release + if [ "$ID" != "alpine" ]; then + return 1 + fi + else + return 1 + fi + PACKAGES="autoconf + automake + libpng-dev + poppler-dev + glib-dev + gcc + build-base" + PKGCMD=apk + PKGARGS="add" + return 0 +} + # By Parameter --os os_argument() { [ -z "$OS" ] && return 1 @@ -463,6 +496,7 @@ os_argument() { freebsd) os_freebsd "$@";; arch) os_arch "$@";; centos) os_centos "$@";; + netbsd) os_netbsd "$@";; openbsd) os_openbsd "$@";; fedora) os_fedora "$@";; debian) os_debian "$@";; @@ -471,6 +505,7 @@ os_argument() { nixos) os_nixos "$@";; void) os_void "$@";; opensuse) os_opensuse "$@";; + alpine) os_alpine "$@";; *) echo "Invalid --os argument: $OS" exit 1 esac || { @@ -480,7 +515,8 @@ os_argument() { } ## +-----------------------------------------------------------+ -## * Figure out were we are, install deps and build the program +## * Figure out where we are +## ** install deps and build the program ## +-----------------------------------------------------------+ handle_options "$@" @@ -490,6 +526,7 @@ os_macos "$@" || \ os_freebsd "$@" || \ os_arch "$@" || \ os_centos "$@" || \ +os_netbsd "$@" || \ os_openbsd "$@" || \ os_fedora "$@" || \ os_debian "$@" || \ @@ -498,6 +535,7 @@ os_msys2 "$@" || \ os_nixos "$@" || \ os_void "$@" || \ os_opensuse "$@" || \ +os_alpine "$@" || \ { OS_IS_HANDLED= if [ -z "$DRY_RUN" ]; then diff --git a/server/test/.gitignore b/server/test/.gitignore new file mode 100644 index 0000000..aaedb1f --- /dev/null +++ b/server/test/.gitignore @@ -0,0 +1 @@ +.start-vm diff --git a/server/test/Makefile b/server/test/Makefile index 303b9a1..26a0f36 100644 --- a/server/test/Makefile +++ b/server/test/Makefile @@ -39,10 +39,10 @@ docker/%.Dockerfile: docker/templates/%.Dockerfile.in \ @echo Creating Dockerfile for target $* cat $^ > $@ -# Build the Docker Image +# Build the Docker Image. Since we are building a new image, remove the existing container. docker/.%.build: docker/%.Dockerfile ../autobuild docker/lib @echo Building target image $* - podman image build $(DOCKER_BUILD_ARGS) epdfinfo/$* -f $< ../ + podman image build $(DOCKER_BUILD_ARGS) epdfinfo/$* -f $< ../../ touch $@ # Build the Docker Container @@ -68,6 +68,8 @@ docker/.%.clean: docker/clean: $(patsubst %, docker/.%.clean, $(DOCKER_OS)) +test: docker/test + clean: docker/clean rm -f -- docker/.[^.]*.build rm -f -- docker/.[^.]*.container diff --git a/server/test/docker/lib/run-tests b/server/test/docker/lib/run-tests index 43fe5e5..31887bf 100755 --- a/server/test/docker/lib/run-tests +++ b/server/test/docker/lib/run-tests @@ -2,8 +2,23 @@ PATH="$(dirname "$0")":$PATH -set -e +run_tests_exit_success() +{ + echo "===============================" + echo " Elisp Tests succeeded. :O) " + echo "===============================" + exit 0 +} -yes-or-enter | ./autobuild -i /bin -yes-or-enter | ./autobuild -i /usr/bin | \ +set -e +# Check that install completes successfully +yes-or-enter | ./server/autobuild -i /bin +# Check that re-install skips package installation +yes-or-enter | ./server/autobuild -i /usr/bin | \ grep -q "Skipping package installation (already installed)" +# Check that lisp tests run correctly, if emacs is installed and available on PATH +echo +if which emacs > /dev/null 2> /dev/null; then + echo "Emacs found installed! Running elisp tests" + make test && run_tests_exit_success +fi diff --git a/server/test/docker/templates/Dockerfile.common.in b/server/test/docker/templates/Dockerfile.common.in index 083b19a..142f062 100644 --- a/server/test/docker/templates/Dockerfile.common.in +++ b/server/test/docker/templates/Dockerfile.common.in @@ -1,4 +1,4 @@ -ADD . /epdfinfo -WORKDIR /epdfinfo +COPY . /pdf-tools +WORKDIR /pdf-tools RUN make -s distclean || true -CMD ["sh", "./test/docker/lib/run-tests"] +CMD ["sh", "./server/test/docker/lib/run-tests"] diff --git a/server/test/docker/templates/emacs-26.Dockerfile.in b/server/test/docker/templates/emacs-26.Dockerfile.in new file mode 100644 index 0000000..088a991 --- /dev/null +++ b/server/test/docker/templates/emacs-26.Dockerfile.in @@ -0,0 +1,5 @@ +# -*- dockerfile -*- +FROM silex/emacs:26-ci-cask +ARG DEBIAN_FRONTEND=noninteractive +# Need to install make, tzdata here to avoid stupid prompts when running package install via autobuild +RUN apt-get update -y && apt-get install -y make tzdata diff --git a/server/test/docker/templates/emacs-27.Dockerfile.in b/server/test/docker/templates/emacs-27.Dockerfile.in new file mode 100644 index 0000000..50cd820 --- /dev/null +++ b/server/test/docker/templates/emacs-27.Dockerfile.in @@ -0,0 +1,5 @@ +# -*- dockerfile -*- +FROM silex/emacs:27-ci-cask +ARG DEBIAN_FRONTEND=noninteractive +# Need to install make, tzdata here to avoid stupid prompts when running package install via autobuild +RUN apt-get update -y && apt-get install -y make tzdata diff --git a/server/test/docker/templates/emacs-28.Dockerfile.in b/server/test/docker/templates/emacs-28.Dockerfile.in new file mode 100644 index 0000000..c6895ac --- /dev/null +++ b/server/test/docker/templates/emacs-28.Dockerfile.in @@ -0,0 +1,5 @@ +# -*- dockerfile -*- +FROM silex/emacs:28-ci-cask +ARG DEBIAN_FRONTEND=noninteractive +# Need to install make, tzdata here to avoid stupid prompts when running package install via autobuild +RUN apt-get update -y && apt-get install -y make tzdata diff --git a/server/test/docker/templates/emacs-29.Dockerfile.in b/server/test/docker/templates/emacs-29.Dockerfile.in new file mode 100644 index 0000000..edbf764 --- /dev/null +++ b/server/test/docker/templates/emacs-29.Dockerfile.in @@ -0,0 +1,5 @@ +# -*- dockerfile -*- +FROM silex/emacs:master-ci-cask +ARG DEBIAN_FRONTEND=noninteractive +# Need to install make, tzdata here to avoid stupid prompts when running package install via autobuild +RUN apt-get update -y && apt-get install -y make tzdata |
