summaryrefslogtreecommitdiffhomepage
path: root/test/container-run.sh
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2024-04-28 19:13:16 +0200
committerDavid Lönnhager <david.l@mullvad.net>2024-04-29 13:34:19 +0200
commit99b27f2747c59a074b603ef4d6dcf490a9dcb1d5 (patch)
tree649e2da70869a43e2a852d281109b6ccfce25011 /test/container-run.sh
parentaca3448cf7484ffa8bfe95e27f00d2cd15c870a4 (diff)
downloadmullvadvpn-99b27f2747c59a074b603ef4d6dcf490a9dcb1d5.tar.xz
mullvadvpn-99b27f2747c59a074b603ef4d6dcf490a9dcb1d5.zip
Make test build setup more like app container
Diffstat (limited to 'test/container-run.sh')
-rwxr-xr-xtest/container-run.sh33
1 files changed, 33 insertions, 0 deletions
diff --git a/test/container-run.sh b/test/container-run.sh
new file mode 100755
index 0000000000..f2af53ed2a
--- /dev/null
+++ b/test/container-run.sh
@@ -0,0 +1,33 @@
+#!/usr/bin/env bash
+
+set -eu
+
+CARGO_REGISTRY_VOLUME_NAME=${CARGO_REGISTRY_VOLUME_NAME:-"cargo-registry"}
+CONTAINER_RUNNER=${CONTAINER_RUNNER:-"podman"}
+
+SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+REPO_DIR="$SCRIPT_DIR/.."
+cd "$SCRIPT_DIR"
+
+source "$REPO_DIR/scripts/utils/log"
+
+if [[ ${1:-""} != "linux" ]]; then
+ log_error "Invalid platform. Specify a valid platform as first argument"
+ exit 1
+fi
+
+shift
+
+if ! "$CONTAINER_RUNNER" image exists mullvadvpn-app-tests; then
+ container_image=$(cat "$REPO_DIR/building/linux-container-image.txt")
+ podman build -t mullvadvpn-app-tests --build-arg IMAGE="${container_image}" .
+fi
+
+set -x
+exec "$CONTAINER_RUNNER" run --rm -it \
+ -v "${CARGO_REGISTRY_VOLUME_NAME}":/root/.cargo/registry:Z \
+ -v "${REPO_DIR}":/build:z \
+ -w "/build/test" \
+ -e CARGO_TARGET_DIR=/build/test/target \
+ mullvadvpn-app-tests \
+ /bin/bash -c "$*"