Add tests for Ubuntu LTS
authorJonathan Dieter <jdieter@gmail.com>
Mon, 17 Jan 2022 20:06:27 +0000 (20:06 +0000)
committerJonathan Dieter <jdieter@gmail.com>
Mon, 17 Jan 2022 20:06:27 +0000 (20:06 +0000)
Signed-off-by: Jonathan Dieter <jdieter@gmail.com>
.github/workflows/main.yml
autotest/ubuntu-lts/build.sh [new file with mode: 0755]
autotest/ubuntu-lts/build/Dockerfile [new file with mode: 0644]
autotest/ubuntu-lts/prep.sh [new file with mode: 0755]
autotest/ubuntu-lts/prep/Dockerfile [new file with mode: 0644]
autotest/ubuntu-lts/test.sh [new file with mode: 0755]

index dd2548266dbdeb2a3d2be9351fa00ceeb45c3c3f..14b63fac47ceb0ccba4d88d77afc5f5744a613bc 100644 (file)
@@ -13,7 +13,7 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        container_directory: [fedora-latest, centos-7, alpine-edge, opensuse-leap, debian-latest, ubuntu-rolling]
+        container_directory: [fedora-latest, centos-7, alpine-edge, opensuse-leap, debian-latest, ubuntu-rolling, ubuntu-lts]
 
     name: Compile and run tests
     steps:
diff --git a/autotest/ubuntu-lts/build.sh b/autotest/ubuntu-lts/build.sh
new file mode 100755 (executable)
index 0000000..e0298cc
--- /dev/null
@@ -0,0 +1,12 @@
+#!/bin/bash
+# Build zchunk-ubuntu-lts:latest if it doesn't exist
+HAVE_IMAGE=$(docker image ls -q zchunk-ubuntu-lts:latest)
+if [ "$HAVE_IMAGE" == "" ]; then
+       autotest/ubuntu-lts/prep.sh
+       if [ "$?" -ne 0 ]; then
+               exit 1
+       fi
+fi
+docker image rm zchunk-ubuntu-lts:test -f 2>/dev/null 1>/dev/null
+docker image build -t zchunk-ubuntu-lts:test --file autotest/ubuntu-lts/build/Dockerfile ./
+
diff --git a/autotest/ubuntu-lts/build/Dockerfile b/autotest/ubuntu-lts/build/Dockerfile
new file mode 100644 (file)
index 0000000..2ffa531
--- /dev/null
@@ -0,0 +1,6 @@
+FROM zchunk-ubuntu-lts:latest
+ADD ./ /code
+WORKDIR /code
+RUN meson build && cd build && ninja
+WORKDIR /code/build
+CMD ninja test
diff --git a/autotest/ubuntu-lts/prep.sh b/autotest/ubuntu-lts/prep.sh
new file mode 100755 (executable)
index 0000000..0362160
--- /dev/null
@@ -0,0 +1,7 @@
+#!/bin/bash
+docker pull ubuntu:latest
+if [ "$?" -ne 0 ]; then
+        exit 1
+fi
+docker image rm -f zchunk-ubuntu-lts:latest 2>/dev/null 1>/dev/null
+docker image build -t zchunk-ubuntu-lts:latest --file autotest/ubuntu-lts/prep/Dockerfile ./
diff --git a/autotest/ubuntu-lts/prep/Dockerfile b/autotest/ubuntu-lts/prep/Dockerfile
new file mode 100644 (file)
index 0000000..32780d5
--- /dev/null
@@ -0,0 +1,2 @@
+FROM ubuntu:latest
+RUN /bin/bash -c 'apt-get update && export DEBIAN_FRONTEND=noninteractive && apt-get -yq install meson gcc pkg-config libzstd-dev libcurl4-openssl-dev libssl-dev'
diff --git a/autotest/ubuntu-lts/test.sh b/autotest/ubuntu-lts/test.sh
new file mode 100755 (executable)
index 0000000..1fb2cf6
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/bash
+# Build zchunk-ubuntu-lts:latest if it doesn't exist
+HAVE_IMAGE=$(docker image ls -q zchunk-ubuntu-lts:test)
+if [ "$HAVE_IMAGE" == "" ]; then
+       autotest/ubuntu-lts/build.sh
+       if [ "$?" -ne 0 ]; then
+               exit 1
+       fi
+fi
+docker rm zchunk-ubuntu-lts-test -f 2>/dev/null 1>/dev/null
+docker run --name zchunk-ubuntu-lts-test zchunk-ubuntu-lts:test
+RETVAL=$?
+docker rm zchunk-ubuntu-lts-test -f 2>/dev/null 1>/dev/null
+docker image rm zchunk-ubuntu-lts:test -f 2>/dev/null 1>/dev/null
+exit $RETVAL