podman/contrib/cirrus/mac_runner.sh

47 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
#
# This script is what runs mac tests. It is invoked from .cirrus.yml
#
# Yep, some of this is adapted from runner.sh. We can't actually
# use that as a library, because Macintosh bash and awk lack
# features we need.
set -euo pipefail
# Name pattern for logformatter output file, derived from environment
function output_name() {
# .cirrus.yml defines this as a short readable string for web UI
std_name_fmt=$(sed -ne 's/^.*std_name_fmt \"\(.*\)\"/\1/p' <.cirrus.yml)
test -n "$std_name_fmt" || die "Could not grep 'std_name_fmt' from .cirrus.yml"
# Interpolate envariables. 'set -u' throws fatal if any are undefined
(
set -u
eval echo "$std_name_fmt" | tr ' ' '-'
)
}
function logformatter() {
# Mac awk barfs on this, syntax error
# awk --file "${CIRRUS_WORKING_DIR}/${SCRIPT_BASE}/timestamp.awk" \
# shellcheck disable=SC2154
"${CIRRUS_WORKING_DIR}/${SCRIPT_BASE}/logformatter" "$(output_name)"
}
# Defined by .cirrus.yml
# shellcheck disable=SC2154
case "$TEST_FLAVOR" in
machine-applehv)
export CONTAINERS_MACHINE_PROVIDER="applehv"
;;
machine-libkrun)
export CONTAINERS_MACHINE_PROVIDER="libkrun"
;;
*)
echo "Unknown/unsupported \$TEST_FLAVOR value '$TEST_FLAVOR'."
exit 1
esac
make localmachine 2>&1 | logformatter