aboutsummaryrefslogtreecommitdiff
path: root/.cirrus.yml
Commit message (Collapse)AuthorAge
* Cross-build release-archives w/ arch in filenameChris Evich2021-09-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes #11417 Cross-building the podman-remote documentation requires a functional native architecture executable. However `make` only deals with files/timestamps, it doesn't understand if an existing binary will function on the system or not. This makes building cross-platform releases incredibly accident-prone and fragile. A practical way to deal with this, is via multiple conditional (nested) `make` calls along with careful manipulation of `$GOOS` and `$GOARCH`. Also, when cross-building releases be kind to humans and cleanup any non-native binaries left behind. Update the `Alt Arch. Cross` Cirrus-CI task to build release archives for all Linux architectures supported by golang and podman. Update the `OSX Cross` task to additionally build for the M1 (arm64) architecture. Finally, update the release process documentation to reflect the new locations (Cirrus-CI task names) for the release archives. Include a note about additional manual work being required to produce the signed `.dmg` file for MacOS. Signed-off-by: Chris Evich <cevich@redhat.com>
* Cirrus: NM/CNI workaround + Remove prior-UbuntuChris Evich2021-09-13
| | | | | | Ref: https://github.com/containers/automation_images/pull/88 Signed-off-by: Chris Evich <cevich@redhat.com>
* Cirrus: Run unit-tests rootlessChris Evich2021-09-09
| | | | | | | | | | Previously (for various reasons) the unittests were limited by the Makefile to root-only. However, experimentation via PR #11490 shows they will actually execute and pass when run as a regular user. Enable this for only the latest Fedora VMs, so as to only add one new task to the (already large) set. Signed-off-by: Chris Evich <cevich@redhat.com>
* Cirrus: Reduce APIv2 task timeoutChris Evich2021-08-31
| | | | | | | | | | | | At the time of this commit, a significant problem has been identified (introduced in f5ce02b227f4). The effect is, `podman pull` has a chance of hanging, especially when re-pulling an existing image. While a fix is in the works, there's no reason to make developers wait the full (default) 1-hour timeout for the APIv2 task. Reduce it to 2x nominal test runtime, so if the hang/flake is hit, the task can be re-run more quickly. Signed-off-by: Chris Evich <cevich@redhat.com>
* Merge pull request #11374 from cevich/no_api2_cidocsOpenShift Merge Robot2021-08-31
|\ | | | | Cirrus: Skip APIv2 tests for [CI:DOCS]
| * Cirrus: Skip APIv2 tests for [CI:DOCS]Chris Evich2021-08-31
| | | | | | | | Signed-off-by: Chris Evich <cevich@redhat.com>
* | upgrade test: add new baselineEd Santiago2021-08-30
|/ | | | | | Add a new reference point against which to test upgrades. Signed-off-by: Ed Santiago <santiago@redhat.com>
* Revert ".cirrus.yml: use fresh images for all VMs"Chris Evich2021-08-18
| | | | | | | | | | | This reverts commit 404d5edb1557e3d2cb255d38bd89274586c4c100. The replacement (updated) images include a fix for: https://github.com/containers/common/issues/631 Also minor update to an unrelated FIXME comment. Signed-off-by: Chris Evich <cevich@redhat.com>
* Cirrus: Resolve two upgrade-test FIXMEsChris Evich2021-08-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I attempted to run the tests in a loop (one VM) but it fails with: ``` not ok 8 exec (from function `is' in file test/upgrade/../system/helpers.bash, line 474, in test file test/upgrade/test-upgrade.bats, line 222) `is "$output" "$RANDOM_STRING_1" "exec into myrunningcontainer"' failed /var/tmp/go/src/github.com/containers/podman/bin/podman exec myrunningcontainer cat /var/www/index.txt time="2021-08-17T13:34:21-05:00" level=warning msg="Failed to add conmon to systemd sandbox cgroup: Invalid unit name '/libpod_parent'" uagHtpYnA47bkz3 /vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv | FAIL: exec into myrunningcontainer | expected: 'uagHtpYnA47bkz3' | actual: 'time="2021-08-17T13:34:21-05:00" level=warning msg="Failed to add conmon to systemd sandbox cgroup: Invalid unit name '/libpod_parent'"' | > 'uagHtpYnA47bkz3' \^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ``` Since the current implementation doesn't reproduce this error, the change isn't worth the cost of debugging/fixing. OTOH, making the job only run from the daily cirrus-cron builds is a simple change. Signed-off-by: Chris Evich <cevich@redhat.com>
* Enable docker-py compat. testing w/ ignored resultChris Evich2021-08-09
| | | | | | | | | | Significant bitrot results in almost immediate test failure. This commit adds only the very basic, bare-minimum needed to get them started. ***TESTING RESULTS ARE IGNORED*** Signed-off-by: Chris Evich <cevich@redhat.com>
* Cirrus: Fix not uploading logformatter htmlChris Evich2021-08-04
| | | | | | | Previously we were generating the annotated results but never uploading them. Fix this so visiting the advertised URL actually works. Signed-off-by: Chris Evich <cevich@redhat.com>
* buildah bud tests under podman-remoteEd Santiago2021-07-28
| | | | | | | | | | | | | | | | New functionality -- mostly in the diffs we apply to buildah's helpers.bash -- to enable running buildah-bud tests under podman-remote. The gist of it is, we start a 'podman system service' before each test, and clean it up on test exit. Design decision: the diff file for helpers.bash is no longer trailing-whitespace-clean: that ended up producing diffs that git wouldn't apply, because in some cases the whitespace is actually important. In order to pass CI, we need to exclude this file from some checks. Signed-off-by: Ed Santiago <santiago@redhat.com>
* Cirrus: Fixes due to master->main renameChris Evich2021-06-30
| | | | Signed-off-by: Chris Evich <cevich@redhat.com>
* Cirrus: Prevent BZ1965743 workaround pruningChris Evich2021-06-16
| | | | | | | | | | | | | | | | A hidden non-obvious corner-case of temporary changes introduced by https://github.com/containers/podman/pull/10451 could be unintended pruning of some ubuntu images. This could be impactful if for some reason the `.cirrus.yml: use c5521575421149184 for Ubuntu` commit is reverted beyond 30-days (the disused image-prune interval) and the _old_ images are needed (for an unforeseen reason). Mitigate this by temporarily including the old images in the timestamp updating task. This commit may be reverted (and the problem ignored) if new VM images are built and deployed for all OS's (i.e. replacing the Fedora/Ubuntu tag split workaround needed for the BZ). Signed-off-by: Chris Evich <cevich@redhat.com>
* .cirrus.yml: use c5521575421149184 for UbuntuGiuseppe Scrivano2021-06-16
| | | | Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
* Use updated VM images + updated automation toolingChris Evich2021-05-14
| | | | | | | | | Both the `containers/automation` and `containers/automation_images` have been updated with a default 'main' branch, renamed from 'master`. These images include adjusted tooling in addition to a refresh of all packages. Signed-off-by: Chris Evich <cevich@redhat.com>
* CI: run rootless tests under ubuntuEd Santiago2021-05-06
| | | | | | | | | | | | | | | | | | | | Reason: to catch errors before they surface in RHEL. One of the Ubuntus is specially crafted to run with cgroups v1 and runc. Although this isn't quite the same as RHEL, it's as close as we can come in our CI environment, and I suspect it would have caught #10234 (a regression). Sorry, team. Also: play kube limits test: skip on all rootless, not just rootless+fedora. There was a complicated and unnecessary check in there for Fedora. Also: workaround for bug #10248, a spurious error message on the first invocation of rootless podman on Ubuntu.Old Signed-off-by: Ed Santiago <santiago@redhat.com>
* Cirrus: Update F34beta -> F34Chris Evich2021-04-29
| | | | Signed-off-by: Chris Evich <cevich@redhat.com>
* Cirrus: Update Ubuntu images to 21.04Chris Evich2021-04-27
| | | | | | | | | | | | | Also simplify `lib.sh` after supporting changes incorporated into automation library 2.x+ (present in all VM and container images). * No need to force-load `/etc/profile` and handle it's expectation to **not** being in `errexit` mode. * Slightly re-arrange loading of automation library files for clarity. * Update comments. Signed-off-by: Chris Evich <cevich@redhat.com>
* Overhaul Makefile binary and release worflowsChris Evich2021-04-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Incorporate changes from abandoned #9918: Use dedicated `bin` sub-directories for `windows` and `darwin` when building `podman-remote`. The linux flavor remains under `bin` as before. * Fix MacOS Documentation-generation for release-packaging. The `install-podman-remote-%-docs` target requires local execution of `podman-remote`, but it was assuming GOOS=linux. Fix this by dynamically discovering the local OS/architecture type while still permitting cross-building of MacOS binaries under Linux. * Unify temporary directory/file behavior to use a common template. In case of left-over temporary items left in the repository, update the `clean` target accordingly to remove them. * Fix broken podman-remote-static and MacOS release archive targets mismatching the `podman-remote-%` target. Disambiguate this target for all platforms by spelling each out in full, instead of using a wild-card recipe. * Fix Windows-installer target to properly recognize existing output files and not constantly rebuild every time. * Include the podman version number in the Windows-installer target in case a user downloads multiple releases. * Include a subdirectory containing the podman version number for both `tar.gz` and `zip` targets. This prevents users clobbering existing directories when un-archiving from releases. Signed-off-by: Chris Evich <cevich@redhat.com>
* Cirrus: Use Fedora 34beta imagesChris Evich2021-04-07
| | | | | | Also, revert 4875a8fb Signed-off-by: Chris Evich <cevich@redhat.com>
* use updated ubuntu imagesbaude2021-04-07
| | | | | | | trying upstream golang on ubuntu to see if we can get a performance benefit. Signed-off-by: baude <bbaude@redhat.com>
* Cirrus: Make use of shared get_ci_vm containerChris Evich2021-04-05
| | | | | | | | | | | Depends on: https://github.com/containers/automation_images/pull/57 https://github.com/containers/automation/pull/64 https://github.com/containers/automation/pull/66 https://github.com/containers/automation/pull/67 https://github.com/containers/automation/pull/68 Signed-off-by: Chris Evich <cevich@redhat.com>
* Add rootless docker-compose test to the CIPaul Holzinger2021-04-01
| | | | Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
* WIP: run buildah bud tests using podmanEd Santiago2021-03-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Set of scripts to run buildah's bud.bats test using podman build in podman CI. podman build is not 100% compatible with buildah bud. In particular: * podman defaults to --layers=true; buildah to false * podman defaults to --force-rm=true; buildah to false * podman error exit status is 125; buildah is 2 * differences in error messages, command-line arguments Some of the above can be dealt with programmatically, by tweaking the buildah helpers.bash (BATS helpers). Some need to be tweaked by patching bud.bats itself. This PR includes a patch that will, I fear, need to be periodically maintained over time. There will likely be failures when vendoring in a new buildah, possibly because new tests were added for new features that don't exist in podman, possibly (I hope unlikely) if existing tests are changed in ways that make the patch file fail to apply. I've tried to write good instructions and to write the run script in such a way that it will offer helpful hints on failure. My instructions and code will be imperfect; I hope they will be good enough to merit continued use of this test (possibly with improvements to the instructions as we learn more about real-world failures). Signed-off-by: Ed Santiago <santiago@redhat.com>
* Latest crun/runc should handle blkio-weight testDaniel J Walsh2021-03-17
| | | | Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* Merge pull request #8749 from edsantiago/upgrade_testOpenShift Merge Robot2021-02-26
|\ | | | | podman upgrade tests
| * podman upgrade testsEd Santiago2021-02-23
| | | | | | | | | | | | | | | | Initial validation of using podman-in-podman to create an old-podman root, then use new-podman to play with the containers created therein. Signed-off-by: Ed Santiago <santiago@redhat.com>
* | Cirrus: Temp. disable prior-fedora (F32) testingChris Evich2021-02-22
|/ | | | | | | | In anticipation of F34beta support, preemptively disable testing on "prior-Fedora". This will allow development to move forward without a soon-to-be-EOL distro. holding anything back. Signed-off-by: Chris Evich <cevich@redhat.com>
* Cirrus: Collect ginkgo node logs artifactsChris Evich2021-02-03
| | | | | | | | | | | | | | | | | | | | In rare cases, it's possible for one of the ginkgo processes to "hang". When this occurs, the main output will contain this message: ``Ginkgo timed out waiting for all parallel nodes to report`` The only way to debug this was to look through concatenated printing of the ginkgo node logs. This is a tedious and daunting task, requiring special search knowledge, facing a "wall of text". Simplify the situation by collecting the node logs separately, as individual files in a cirrus-artifact. In this way, it's faster to figure out which test "hung" by examining each log individually. The log file which does not have a pass/fail summary at the end, indicates the last test hung (for whatever reason), and includes it's output (if any). Signed-off-by: Chris Evich <cevich@redhat.com>
* Merge pull request #9063 from cevich/master_fix_validateOpenShift Merge Robot2021-01-30
|\ | | | | Cirrus: Fix running Validate task on branches
| * Cirrus: Fix running Validate task on branchesChris Evich2021-01-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Followup to dbb9943 Despite skipping the `Smoke` check, it was observed on a *new* branch, the `validate` task (specifically `git-validation`) will fail. This is because: * `$CIRRUS_LAST_GREEN_CHANGE` will be empty on a new branch. * `$CIRRUS_BASE_SHA` is always empty for runs triggered by branch-push * `$EPOCH_TEST_COMMIT` will be set to `YOU_FOUND_A_BUG`. Fix this by eliminating the `Smoke` task entirely, simplifying all the `make validate` operations into the `validate` cirrus task. Ensure this task does not run when a new branch or tag is pushed. Also, eliminate the `$CIRRUS_BUILD_ID` value as it's confusing and not actually used anywhere. It was formerly used for building VM images, but this has moved to another repo entirely. Signed-off-by: Chris Evich <cevich@redhat.com>
* | Cirrus: Build static podman-remoteChris Evich2021-01-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prior to this commit, the "Static Build" task only produced a `bin/podman`. Update this to also include a `bin/podman-remote` binary. Update the pr-should-include-tests checker to ignore the `nix` directory, which isn't applicable. Lastly, restore the static build task to 'required' for CI success. Leaving the comment inplace in case it needs to be bypassed in the future on short notice. Signed-off-by: Chris Evich <cevich@redhat.com>
* | Merge pull request #9082 from saschagrunert/static-buildOpenShift Merge Robot2021-01-27
|\ \ | |/ |/| Fix static build cache by using cachix
| * Fix static build cache by using cachixSascha Grunert2021-01-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It looks like we always hit the caching issue in Cirrus CI described within #8313. A solution around that is to use cachix, which has been pre-populated from my local machine. To push all (runtime and build) dependencies, we can leverage a pre-populated store by: ``` > nix-store -qR --include-outputs $(nix-instantiate nix/default.nix) | cachix push podman ``` The cache can be re-used by everybody to rapidly build static Podman binaries: https://app.cachix.org/cache/podman [NO TESTS NEEDED] Signed-off-by: Sascha Grunert <mail@saschagrunert.de>
* | Merge pull request #9022 from cevich/swagger_uploadOpenShift Merge Robot2021-01-26
|\ \ | |/ |/| Cirrus: Upload swagger YAML in every context
| * Cirrus: Upload swagger YAML in every contextChris Evich2021-01-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The podman documentation site uses javascript to display API documentation at: http://docs.podman.io/en/latest/Reference.html As input, the javascript sources from a CORS-enabled Google Cloud Storage object. This commit ensures the storage object is present and updated for every Cirrus-CI execution context: Tags, Branches, and PRs. As of this commit, the documentation site only utilizes the object uploaded by the Cirrus-CI run on the `master` branch: `swagger-master.yaml`. The file produced and uploaded due to a PR is intended for testing purposes: Confirm it's generation and uploading are both functional. Signed-off-by: Chris Evich <cevich@redhat.com>
* | [CI:DOCS] Cirrus: Skip smoke task on branch-pushChris Evich2021-01-21
|/ | | | | | | | | | | There is no need to re-run the same basic validation checks as were presumably already run on a PR before it merged. There are also possible problems properly determining `$EPOCH_TEST_COMMIT` when there have been no successful CI-runs on the branch (i.e. it's new). This needlessly fouls up the git-validation tool. Fix Both problems by just skipping the 'smoke' task for branches and tags. Signed-off-by: Chris Evich <cevich@redhat.com>
* Cirrus: add bindings checksValentin Rothberg2021-01-20
| | | | | | | | | Make sure that bindings are in sync with the code. The check is similar to what's already being done with `make vendor`, so integrate the two. [NO TESTS NEEDED] Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* [CI:DOCS]Do not run compose tests with CI:DOCSbaude2021-01-18
| | | | Signed-off-by: baude <bbaude@redhat.com>
* Cirrus: Utilize $GOPATH cache for alt_build taskChris Evich2021-01-13
| | | | | | | | | | Specifically, the result of 'make install.tools' is needed. Part of that target installs tooling into `$GOPATH/bin`. A future commit requires this tooling for the `Build Each Commit` item of the alt_build matrix. Re-use the cache of this directory for this task to ensure the necessary tooling/libraries are available. Signed-off-by: Chris Evich <cevich@redhat.com>
* Merge pull request #8900 from cevich/no_tag_testingOpenShift Merge Robot2021-01-12
|\ | | | | Cirrus: Skip most tests on tag-push
| * Cirrus: Skip most tests on tag-pushChris Evich2021-01-07
| | | | | | | | | | | | | | | | | | | | | | | | | | Due to various reasons, CI results (esp. testing tasks) are completely ignored for builds triggered by a new tag-push. Additionally, since many of the automation scripts are in the repo., any related failures/flakes would require code changes (therefore a new tag). Resolve this by skipping every testing-type task for builds triggered by tag-push. Only retain tasks which build things intended for consumption associated with a possible official release. Signed-off-by: Chris Evich <cevich@redhat.com>
* | Cirrus: Add cross-compile test for alternative archesChris Evich2021-01-11
|/ | | | | | | Followup to https://github.com/containers/podman/pull/8907 that simply ensures cross-compiling podman completes. Signed-off-by: Chris Evich <cevich@redhat.com>
* Cirrus: Update Fedora & Ubuntu imagesChris Evich2021-01-06
| | | | Signed-off-by: Chris Evich <cevich@redhat.com>
* Cirrus: Add support for Ubuntu 20.xChris Evich2020-12-15
| | | | | | | | | | | | | | | | | | | | | | | | | Previously automation always dropped the minor version number for distributions. This was intended for presentation and conditional simplicity. Bash does not support non-integer comparison natively. With the release of version 20.10, supporting testing with it and the LTS release (20.04) requires scripts to consider minor version numbers for Ubuntu VMs. This is necessary because many times in the past, some behaviors needed to be conditional on the release version number. With this commit, the images and embedded scripts/tooling uses an altered format of `$UBUNTU_NAME', `$PRIOR_UBUNTU_NAME`, and (crucially) `$OS_RELEASE_VER` and `$OS_REL_VER`. Any `.` characters appearing in the official version (from `/etc/os-release`) are dropped, and the result is concatenated. For example the current Ubuntu LTS version is `20.04`. Prior to this commit, `$OS_RELEASE_VER` would have been `20`. With this change, `$OS_RELEASE_VER` will now show `2004`. Similarly `20.10` is shown as `2010`. Signed-off-by: Chris Evich <cevich@redhat.com>
* add compose regression to cibaude2020-12-11
| | | | | | | to prevent any regressions, we should be running regression tests using compose. Signed-off-by: baude <bbaude@redhat.com>
* Remove varlink support from PodmanDaniel J Walsh2020-11-26
| | | | Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* Cirrus: Invalidate static cache on VM image updateChris Evich2020-11-16
| | | | | | | | | | It's important to periodically update the nix cache (about 1GB in size). If not, it can grow stale and has been observed causing task failures. Associating the nix cache update with a VM/Container image update, ensures it happens first in PRs where environment-related failures are less surprising. Signed-off-by: Chris Evich <cevich@redhat.com>
* Merge pull request #8107 from cevich/measure_testing_statsOpenShift Merge Robot2020-11-12
|\ | | | | Cirrus: Collect runner.sh stats