diff options
-rw-r--r-- | .cirrus.yml | 49 | ||||
-rw-r--r-- | contrib/cirrus/lib.sh | 11 | ||||
-rwxr-xr-x | contrib/cirrus/setup_environment.sh | 7 | ||||
-rw-r--r-- | test/e2e/pod_infra_container_test.go | 6 |
4 files changed, 35 insertions, 38 deletions
diff --git a/.cirrus.yml b/.cirrus.yml index b75e99184..1a109f5ba 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -21,13 +21,13 @@ env: #### #### Cache-image names to test with (double-quotes around names are critical) #### - FEDORA_NAME: "fedora-32" - PRIOR_FEDORA_NAME: "fedora-31" + FEDORA_NAME: "fedora-33" + PRIOR_FEDORA_NAME: "fedora-32" UBUNTU_NAME: "ubuntu-20" PRIOR_UBUNTU_NAME: "ubuntu-19" # Google-cloud VM Images - IMAGE_SUFFIX: "c4948709391728640" + IMAGE_SUFFIX: "c6323493627232256" FEDORA_CACHE_IMAGE_NAME: "fedora-${IMAGE_SUFFIX}" PRIOR_FEDORA_CACHE_IMAGE_NAME: "prior-fedora-${IMAGE_SUFFIX}" UBUNTU_CACHE_IMAGE_NAME: "ubuntu-${IMAGE_SUFFIX}" @@ -74,12 +74,8 @@ ext_svc_check_task: env: TEST_FLAVOR: ext_svc CTR_FQIN: ${FEDORA_CONTAINER_FQIN} - setup_script: &setup - - 'cd $GOSRC/$SCRIPT_BASE || exit 1' - - './setup_environment.sh' - main_script: &main - - 'cd $GOSRC/$SCRIPT_BASE || exit 1' - - './runner.sh' + setup_script: &setup '$GOSRC/$SCRIPT_BASE/setup_environment.sh' + main_script: &main '$GOSRC/$SCRIPT_BASE/runner.sh' # Execute some quick checks to confirm this YAML file and all @@ -189,17 +185,13 @@ build_task: clone_script: &noop mkdir -p $CIRRUS_WORKING_DIR setup_script: *setup main_script: *main - always: &artifacts + always: &binary_artifacts gosrc_artifacts: path: ./* # Grab everything in top-level $GOSRC type: application/octet-stream binary_artifacts: path: ./bin/* type: application/octet-stream - # Required for `contrib/cirrus/logformatter` to work properly - html_artifacts: - path: ./*.html - type: text/html # Confirm the result of building on at least one platform appears sane. @@ -228,7 +220,6 @@ validate_task: clone_script: *noop setup_script: *setup main_script: *main - always: *artifacts # Exercise the "libpod" API with a small set of common @@ -248,7 +239,6 @@ bindings_task: clone_script: *noop # Comes from cache setup_script: *setup main_script: *main - always: *artifacts # Build the "libpod" API documentation `swagger.yaml` for eventual @@ -267,7 +257,7 @@ swagger_task: clone_script: *full_clone # build-cache not available to container tasks setup_script: *setup main_script: *main - always: *artifacts + always: *binary_artifacts endpoint_task: @@ -285,7 +275,6 @@ endpoint_task: clone_script: *full_clone # build-cache not available to container tasks setup_script: *setup main_script: *main - always: *artifacts # Check that all included go modules from other sources match @@ -304,7 +293,6 @@ vendor_task: clone_script: *full_clone # build-cache not available to container tasks setup_script: *setup main_script: *main - always: *artifacts # There are several other important variations of podman which @@ -335,7 +323,8 @@ alt_build_task: ALT_NAME: 'Build varlink-binaries' setup_script: *setup main_script: *main - always: *artifacts + always: *binary_artifacts + # Confirm building a statically-linked binary is successful static_alt_build_task: @@ -346,7 +335,7 @@ static_alt_build_task: - build # Community-maintained task, may fail on occasion. If so, uncomment # the next line and file an issue with details about the failure. - # allow_failures: $CI == $CI + allow_failures: $CI == $CI gce_instance: *bigvm env: <<: *stdenvars @@ -364,7 +353,7 @@ static_alt_build_task: fingerprint_script: cat nix/* setup_script: *setup main_script: *main - always: *artifacts + always: *binary_artifacts # Confirm building the remote client, natively on a Mac OS-X VM. @@ -385,7 +374,7 @@ osx_alt_build_task: - brew install go-md2man - make podman-remote-darwin - make install-podman-remote-darwin-docs - always: *artifacts + always: *binary_artifacts # This task is a stub: In the future it will be used to verify @@ -405,7 +394,6 @@ docker-py_test_task: clone_script: *noop # Comes from cache setup_script: *setup main_script: *main - always: *artifacts # Does exactly what it says, execute the podman unit-tests on all primary @@ -424,7 +412,6 @@ unit_test_task: gopath_cache: *ro_gopath_cache setup_script: *setup main_script: *main - always: *artifacts apiv2_test_task: @@ -441,7 +428,10 @@ apiv2_test_task: setup_script: *setup main_script: *main always: &logs_artifacts - <<: *artifacts + # Required for `contrib/cirrus/logformatter` to work properly + html_artifacts: + path: ./*.html + type: text/html package_versions_script: '$SCRIPT_BASE/logcollector.sh packages' ginkgo_node_logs_script: '$SCRIPT_BASE/logcollector.sh ginkgo' df_script: '$SCRIPT_BASE/logcollector.sh df' @@ -515,6 +505,7 @@ container_integration_test_task: main_script: *main always: *logs_artifacts + # Execute most integration tests as a regular (non-root) user. rootless_integration_test_task: name: *std_name_fmt @@ -584,6 +575,7 @@ rootless_system_test_task: main_script: *main always: *logs_artifacts + # This task is critical. It updates the "last-used by" timestamp stored # in metadata for all VM images. This mechanism functions in tandem with # an out-of-band pruning operation to remove disused VM images. @@ -665,7 +657,8 @@ release_task: clone_script: *noop # Comes from cache setup_script: *setup main_script: *main - always: *artifacts + always: *binary_artifacts + # When preparing to release a new version, this task may be manually # activated at the PR stage to verify the code is in a proper state. @@ -686,4 +679,4 @@ release_test_task: clone_script: *noop # Comes from cache setup_script: *setup main_script: *main - always: *artifacts + always: *binary_artifacts diff --git a/contrib/cirrus/lib.sh b/contrib/cirrus/lib.sh index 050fb16f3..04e8a3c1c 100644 --- a/contrib/cirrus/lib.sh +++ b/contrib/cirrus/lib.sh @@ -10,6 +10,9 @@ set -a # handling of the (otherwise) default shell setup is non-uniform. Rather # than attempt to workaround differences, simply force-load/set required # items every time this library is utilized. +_waserrexit=0 +if [[ "$SHELLOPTS" =~ errexit ]]; then _waserrexit=1; fi +set +e # Assumed in F33 for setting global vars source /etc/profile source /etc/environment if [[ -r "/etc/ci_environment" ]]; then source /etc/ci_environment; fi @@ -18,6 +21,7 @@ HOME="$(getent passwd $USER | cut -d : -f 6)" # Some platforms set and make this read-only [[ -n "$UID" ]] || \ UID=$(getent passwd $USER | cut -d : -f 3) +if ((_waserrexit)); then set -e; fi # During VM Image build, the 'containers/automation' installation # was performed. The final step of installation sets the library @@ -25,11 +29,8 @@ HOME="$(getent passwd $USER | cut -d : -f 6)" # default shell profile depending on distribution. # shellcheck disable=SC2154 if [[ -n "$AUTOMATION_LIB_PATH" ]]; then - for libname in defaults anchors console_output utils; do - # There's no way shellcheck can process this location - # shellcheck disable=SC1090 - source $AUTOMATION_LIB_PATH/${libname}.sh - done + # shellcheck source=/usr/share/automation/lib/common_lib.sh + source $AUTOMATION_LIB_PATH/common_lib.sh else ( echo "WARNING: It does not appear that containers/automation was installed." diff --git a/contrib/cirrus/setup_environment.sh b/contrib/cirrus/setup_environment.sh index 8ccbd95d9..da175cc05 100755 --- a/contrib/cirrus/setup_environment.sh +++ b/contrib/cirrus/setup_environment.sh @@ -99,11 +99,12 @@ fi case "$OS_RELEASE_ID" in ubuntu*) ;; fedora*) - if ((CONTAINER==0)); then # Not yet running inside a container + if ((CONTAINER==0)); then msg "Configuring / Expanding host storage." # VM is setup to allow flexibility in testing alternate storage. # For general use, simply make use of all available space. - ooe.sh bash "$SCRIPT_BASE/add_second_partition.sh" + bash "$SCRIPT_BASE/add_second_partition.sh" + $SCRIPT_BASE/logcollector.sh df # All SELinux distros need this for systemd-in-a-container msg "Enabling container_manage_cgroup" @@ -215,4 +216,4 @@ echo -e "\n# End of global variable definitions" \ >> /etc/ci_environment msg "Global CI Environment vars.:" -cat /etc/ci_environment | sort | indent +grep -Ev '^#' /etc/ci_environment | sort | indent diff --git a/test/e2e/pod_infra_container_test.go b/test/e2e/pod_infra_container_test.go index 797d51c33..7ec36b2f8 100644 --- a/test/e2e/pod_infra_container_test.go +++ b/test/e2e/pod_infra_container_test.go @@ -383,12 +383,14 @@ var _ = Describe("Podman pod create", func() { podID := session.OutputToString() // verify we can add a host to the infra's /etc/hosts - session = podmanTest.Podman([]string{"run", "--pod", podID, "--add-host", "foobar:127.0.0.1", BB, "ping", "-c", "1", "foobar"}) + // N/B: Using alpine for ping, since BB ping throws + // permission denied error as of Fedora 33. + session = podmanTest.Podman([]string{"run", "--pod", podID, "--add-host", "foobar:127.0.0.1", ALPINE, "ping", "-c", "1", "foobar"}) session.WaitWithDefaultTimeout() Expect(session.ExitCode()).To(Equal(0)) // verify we can see the other hosts of infra's /etc/hosts - session = podmanTest.Podman([]string{"run", "--pod", podID, BB, "ping", "-c", "1", "foobar"}) + session = podmanTest.Podman([]string{"run", "--pod", podID, ALPINE, "ping", "-c", "1", "foobar"}) session.WaitWithDefaultTimeout() Expect(session.ExitCode()).To(Equal(0)) }) |