diff options
| author | David Lönnhager <david.l@mullvad.net> | 2024-04-28 19:13:16 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2024-04-29 13:34:19 +0200 |
| commit | 99b27f2747c59a074b603ef4d6dcf490a9dcb1d5 (patch) | |
| tree | 649e2da70869a43e2a852d281109b6ccfce25011 | |
| parent | aca3448cf7484ffa8bfe95e27f00d2cd15c870a4 (diff) | |
| download | mullvadvpn-99b27f2747c59a074b603ef4d6dcf490a9dcb1d5.tar.xz mullvadvpn-99b27f2747c59a074b603ef4d6dcf490a9dcb1d5.zip | |
Make test build setup more like app container
| -rwxr-xr-x | test/build.sh | 36 | ||||
| -rwxr-xr-x | test/container-run.sh | 33 |
2 files changed, 45 insertions, 24 deletions
diff --git a/test/build.sh b/test/build.sh index e7431b6656..816a906ad6 100755 --- a/test/build.sh +++ b/test/build.sh @@ -2,36 +2,24 @@ set -eu -if [[ -z ${TARGET:-""} ]]; then - echo "\$TARGET must be specified" - exit 1 -fi - SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -APP_DIR="$SCRIPT_DIR/.." +REPO_DIR="$SCRIPT_DIR/.." cd "$SCRIPT_DIR" -if [[ $TARGET == x86_64-unknown-linux-gnu ]]; then - CARGO_REGISTRY_VOLUME_NAME=${CARGO_REGISTRY_VOLUME_NAME:-"cargo-registry"} - - if ! podman image exists mullvadvpn-app-tests; then - container_image=$(cat "$APP_DIR/building/linux-container-image.txt") - podman build -t mullvadvpn-app-tests --build-arg IMAGE="${container_image}" . - fi +source "$REPO_DIR/scripts/utils/log" - podman run --rm -it \ - -v "${CARGO_REGISTRY_VOLUME_NAME}":/root/.cargo/registry:Z \ - -v "${APP_DIR}":/src:z \ - -e CARGO_TARGET_DIR=/src/test/target \ - mullvadvpn-app-tests \ - /bin/bash -c "cd /src/test/; cargo build --bin test-runner --bin connection-checker --release --target ${TARGET}" -else - cargo build \ - --bin test-runner \ - --bin connection-checker \ - --release --target "${TARGET}" +if [[ -z ${TARGET:-""} ]]; then + log_error "TARGET must be specified" + exit 1 fi +source "$REPO_DIR/scripts/utils/log" + +cargo build \ + --bin test-runner \ + --bin connection-checker \ + --release --target "${TARGET}" + # Only build runner image for Windows if [[ $TARGET == x86_64-pc-windows-gnu ]]; then ./scripts/build-runner-image.sh 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 "$*" |
