mirror of
https://github.com/containers/podman.git
synced 2025-06-21 01:19:15 +08:00
Merge pull request #12814 from cevich/netavark
Cirrus: Add e2e task w/ upstream netavark
This commit is contained in:
33
.cirrus.yml
33
.cirrus.yml
@ -7,6 +7,10 @@ env:
|
|||||||
####
|
####
|
||||||
# Name of the ultimate destination branch for this CI run, PR or post-merge.
|
# Name of the ultimate destination branch for this CI run, PR or post-merge.
|
||||||
DEST_BRANCH: "main"
|
DEST_BRANCH: "main"
|
||||||
|
# Netavark branch to use when TEST_ENVIRON=host-netavark
|
||||||
|
NETAVARK_BRANCH: "main"
|
||||||
|
# Aardvark branch to use
|
||||||
|
AARDVARK_BRANCH: "main"
|
||||||
# Overrides default location (/tmp/cirrus) for repo clone
|
# Overrides default location (/tmp/cirrus) for repo clone
|
||||||
GOPATH: &gopath "/var/tmp/go"
|
GOPATH: &gopath "/var/tmp/go"
|
||||||
GOBIN: "${GOPATH}/bin"
|
GOBIN: "${GOPATH}/bin"
|
||||||
@ -44,7 +48,7 @@ env:
|
|||||||
#### N/B: Required ALL of these are set for every single task.
|
#### N/B: Required ALL of these are set for every single task.
|
||||||
####
|
####
|
||||||
TEST_FLAVOR: # int, sys, ext_svc, validate, automation, etc.
|
TEST_FLAVOR: # int, sys, ext_svc, validate, automation, etc.
|
||||||
TEST_ENVIRON: host # 'host' or 'container'
|
TEST_ENVIRON: host # 'host', 'host-netavark', or 'container'
|
||||||
PODBIN_NAME: podman # 'podman' or 'remote'
|
PODBIN_NAME: podman # 'podman' or 'remote'
|
||||||
PRIV_NAME: root # 'root' or 'rootless'
|
PRIV_NAME: root # 'root' or 'rootless'
|
||||||
DISTRO_NV: # any {PRIOR_,}{FEDORA,UBUNTU}_NAME value
|
DISTRO_NV: # any {PRIOR_,}{FEDORA,UBUNTU}_NAME value
|
||||||
@ -508,6 +512,32 @@ container_integration_test_task:
|
|||||||
main_script: *main
|
main_script: *main
|
||||||
always: *int_logs_artifacts
|
always: *int_logs_artifacts
|
||||||
|
|
||||||
|
# Run the integration tests using the latest upstream build of netavark.
|
||||||
|
netavark_integration_test_task:
|
||||||
|
name: "Netavark integration" # using *std_name_fmt here is unreadable
|
||||||
|
alias: netavark_integration_test
|
||||||
|
only_if: *not_docs
|
||||||
|
skip: *branches_and_tags
|
||||||
|
depends_on:
|
||||||
|
- unit_test
|
||||||
|
gce_instance: *standardvm
|
||||||
|
env:
|
||||||
|
DISTRO_NV: ${FEDORA_NAME}
|
||||||
|
_BUILD_CACHE_HANDLE: ${FEDORA_NAME}-build-${CIRRUS_BUILD_ID}
|
||||||
|
VM_IMAGE_NAME: ${FEDORA_CACHE_IMAGE_NAME}
|
||||||
|
CTR_FQIN: ${FEDORA_CONTAINER_FQIN}
|
||||||
|
TEST_FLAVOR: int
|
||||||
|
TEST_ENVIRON: host-netavark
|
||||||
|
NETAVARK_URL: "https://api.cirrus-ci.com/v1/artifact/github/containers/netavark/success/binary.zip?branch=${NETAVARK_BRANCH}"
|
||||||
|
NETAVARK_DEBUG: 0 # set non-zero to use the debug-mode binary
|
||||||
|
AARDVARK_URL: "https://api.cirrus-ci.com/v1/artifact/github/containers/aardvark-dns/success/binary.zip?branch=${AARDVARK_BRANCH}"
|
||||||
|
AARDVARK_DEBUG: 0 # set non-zero to use the debug-mode binary
|
||||||
|
clone_script: *noop # Comes from cache
|
||||||
|
gopath_cache: *ro_gopath_cache
|
||||||
|
setup_script: *setup
|
||||||
|
main_script: *main
|
||||||
|
always: *int_logs_artifacts
|
||||||
|
|
||||||
|
|
||||||
# Execute most integration tests as a regular (non-root) user.
|
# Execute most integration tests as a regular (non-root) user.
|
||||||
rootless_integration_test_task:
|
rootless_integration_test_task:
|
||||||
@ -733,6 +763,7 @@ success_task:
|
|||||||
- remote_integration_test
|
- remote_integration_test
|
||||||
- rootless_integration_test
|
- rootless_integration_test
|
||||||
- container_integration_test
|
- container_integration_test
|
||||||
|
- netavark_integration_test
|
||||||
- local_system_test
|
- local_system_test
|
||||||
- remote_system_test
|
- remote_system_test
|
||||||
- rootless_system_test
|
- rootless_system_test
|
||||||
|
@ -12,7 +12,7 @@ set -eo pipefail
|
|||||||
# most notably:
|
# most notably:
|
||||||
#
|
#
|
||||||
# PODBIN_NAME : "podman" (i.e. local) or "remote"
|
# PODBIN_NAME : "podman" (i.e. local) or "remote"
|
||||||
# TEST_ENVIRON : 'host' or 'container'; desired environment in which to run
|
# TEST_ENVIRON : 'host', 'host-netavark', or 'container'; desired environment in which to run
|
||||||
# CONTAINER : 1 if *currently* running inside a container, 0 if host
|
# CONTAINER : 1 if *currently* running inside a container, 0 if host
|
||||||
#
|
#
|
||||||
|
|
||||||
|
@ -130,7 +130,7 @@ esac
|
|||||||
# Required to be defined by caller: The environment where primary testing happens
|
# Required to be defined by caller: The environment where primary testing happens
|
||||||
# shellcheck disable=SC2154
|
# shellcheck disable=SC2154
|
||||||
case "$TEST_ENVIRON" in
|
case "$TEST_ENVIRON" in
|
||||||
host)
|
host*)
|
||||||
# The e2e tests wrongly guess `--cgroup-manager` option
|
# The e2e tests wrongly guess `--cgroup-manager` option
|
||||||
# shellcheck disable=SC2154
|
# shellcheck disable=SC2154
|
||||||
if [[ "$CG_FS_TYPE" == "cgroup2fs" ]] || [[ "$PRIV_NAME" == "root" ]]
|
if [[ "$CG_FS_TYPE" == "cgroup2fs" ]] || [[ "$PRIV_NAME" == "root" ]]
|
||||||
@ -141,6 +141,41 @@ case "$TEST_ENVIRON" in
|
|||||||
warn "Forcing CGROUP_MANAGER=cgroupfs"
|
warn "Forcing CGROUP_MANAGER=cgroupfs"
|
||||||
echo "CGROUP_MANAGER=cgroupfs" >> /etc/ci_environment
|
echo "CGROUP_MANAGER=cgroupfs" >> /etc/ci_environment
|
||||||
fi
|
fi
|
||||||
|
# TODO: For the foreseeable future, need to support running tests
|
||||||
|
# with and without the latest netavark/aardvark. Once they're more
|
||||||
|
# stable and widely supported in Fedora, they can be pre-installed
|
||||||
|
# from its RPM at VM image build-time.
|
||||||
|
if [[ "$TEST_ENVIRON" =~ netavark ]]; then
|
||||||
|
for info in "netavark $NETAVARK_BRANCH $NETAVARK_URL $NETAVARK_DEBUG" \
|
||||||
|
"aardvark-dns $AARDVARK_BRANCH $AARDVARK_URL $AARDVARK_DEBUG"; do
|
||||||
|
|
||||||
|
read _name _branch _url _debug <<<"$info"
|
||||||
|
req_env_vars _name _branch _url _debug
|
||||||
|
msg "Downloading latest $_name from upstream branch '$_branch'"
|
||||||
|
# Use identifiable archive filename in of a get_ci_env.sh environment
|
||||||
|
curl --fail --location -o /tmp/$_name.zip "$_url"
|
||||||
|
|
||||||
|
# Needs to be in a specific location
|
||||||
|
# ref: https://github.com/containers/common/blob/main/pkg/config/config_linux.go#L39
|
||||||
|
_pdir=/usr/local/libexec/podman
|
||||||
|
mkdir -p $_pdir
|
||||||
|
cd $_pdir
|
||||||
|
msg "$PWD"
|
||||||
|
unzip /tmp/$_name.zip
|
||||||
|
if ((_debug)); then
|
||||||
|
warn "Using debug $_name binary"
|
||||||
|
mv $_name.debug $_name
|
||||||
|
else
|
||||||
|
rm $_name.debug
|
||||||
|
fi
|
||||||
|
chmod 0755 $_pdir/$_name
|
||||||
|
cd -
|
||||||
|
done
|
||||||
|
|
||||||
|
restorecon -F -v $_nvdir
|
||||||
|
msg "Forcing NETWORK_BACKEND=netavark in all subsequent environments."
|
||||||
|
echo "NETWORK_BACKEND=netavark" >> /etc/ci_environment
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
container)
|
container)
|
||||||
if ((CONTAINER==0)); then # not yet inside a container
|
if ((CONTAINER==0)); then # not yet inside a container
|
||||||
@ -247,7 +282,7 @@ case "$TEST_FLAVOR" in
|
|||||||
# Use existing host bits when testing is to happen inside a container
|
# Use existing host bits when testing is to happen inside a container
|
||||||
# since this script will run again in that environment.
|
# since this script will run again in that environment.
|
||||||
# shellcheck disable=SC2154
|
# shellcheck disable=SC2154
|
||||||
if [[ "$TEST_ENVIRON" == "host" ]]; then
|
if [[ "$TEST_ENVIRON" =~ host ]]; then
|
||||||
if ((CONTAINER)); then
|
if ((CONTAINER)); then
|
||||||
die "Refusing to config. host-test in container";
|
die "Refusing to config. host-test in container";
|
||||||
fi
|
fi
|
||||||
@ -259,7 +294,7 @@ case "$TEST_FLAVOR" in
|
|||||||
make && make install PREFIX=/usr ETCDIR=/etc
|
make && make install PREFIX=/usr ETCDIR=/etc
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
die "Invalid value for $$TEST_ENVIRON=$TEST_ENVIRON"
|
die "Invalid value for \$TEST_ENVIRON=$TEST_ENVIRON"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
install_test_configs
|
install_test_configs
|
||||||
|
Reference in New Issue
Block a user