Files
continuwuity/docker/complement.sh
T

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

65 lines
1.8 KiB
Bash
Raw Permalink Normal View History

2025-03-15 04:23:24 +00:00
#!/bin/bash
set -eo pipefail
BASEDIR=$(dirname "$0")
2025-05-03 02:32:49 +00:00
CI="${CI:-false}"
CI_VERBOSE="${CI_VERBOSE_ENV:-false}"
CI_VERBOSE_ENV="${CI_VERBOSE_ENV:-$CI_VERBOSE}"
default_cargo_profile="test"
default_feat_set="all"
default_rust_toolchain="nightly"
default_rust_target="x86_64-unknown-linux-gnu"
default_sys_name="debian"
default_sys_target="x86_64-linux-gnu"
default_sys_version="testing-slim"
2025-05-01 07:47:51 +00:00
set -a
cargo_profile="${cargo_profile:-$default_cargo_profile}"
feat_set="${feat_set:-$default_feat_set}"
rust_target="${rust_target:-$default_rust_target}"
rust_toolchain="${rust_toolchain:-$default_rust_toolchain}"
2025-05-11 10:33:56 +00:00
sys_name="${sys_name:-$default_sys_name}"
sys_target="${sys_target:-$default_sys_target}"
sys_version="${sys_version:-$default_sys_version}"
2025-03-15 04:23:24 +00:00
runner_name=$(echo $RUNNER_NAME | cut -d"." -f1)
runner_num=$(echo $RUNNER_NAME | cut -d"." -f2)
2025-05-01 07:47:51 +00:00
set +a
2025-03-15 04:23:24 +00:00
###############################################################################
2025-05-11 10:33:56 +00:00
set -x
tester_image="complement-tester--${sys_name}--${sys_version}--${sys_target}"
2025-05-01 07:47:51 +00:00
testee_image="complement-testee--${cargo_profile}--${rust_toolchain}--${rust_target}--${feat_set}--${sys_name}--${sys_version}--${sys_target}"
name="complement_tester__${sys_name}__${sys_version}__${sys_target}"
2025-03-15 04:23:24 +00:00
sock="/var/run/docker.sock"
2025-05-10 04:29:08 +00:00
arg="--name $name -v $sock:$sock --network=host $tester_image ${testee_image}"
2025-05-11 10:33:56 +00:00
set +x
2025-05-03 02:32:49 +00:00
if test "$CI_VERBOSE_ENV" = "true"; then
date
env
fi
2025-05-10 04:29:08 +00:00
docker rm -f "$name" 2>/dev/null
trap 'set +x; date; echo -e "\033[1;41;37mFAIL\033[0m"' ERR
if test "$CI" = "true"; then
2025-05-11 10:33:56 +00:00
arg="-d $arg"
cid=$(docker run $arg)
else
arg="--rm -a stdout -a stderr $arg"
docker run $arg
exit $?
2025-05-10 04:29:08 +00:00
fi
2025-05-11 10:33:56 +00:00
echo -n "$cid" > "$name"
2025-05-03 02:32:49 +00:00
2025-05-11 10:33:56 +00:00
trap 'docker container stop $cid; set +x; date; echo -e "\033[1;41;37mFAIL\033[0m"' INT
2025-05-03 02:32:49 +00:00
docker logs -f "$cid"
2025-03-15 04:23:24 +00:00
docker wait "$cid" 2>/dev/null
2025-05-11 10:33:56 +00:00
2025-05-02 00:46:59 +00:00
echo -e "\033[1;42;30mPASS\033[0m"