Commit graph

293 commits

Author SHA1 Message Date
Chris Evich 55a1aecc74
Cirrus: Simplify artifact collection
On several occasions, fatal task failures were observed
during the upload of artifacts after a otherwise successful
testing.  Prior to this commit, most tasks were storing both
logs and binary artifacts.  Avoid possible major inconveniences
of upload failures, by only collecting binary artifacts when
necessary.

Signed-off-by: Chris Evich <cevich@redhat.com>
2020-11-04 09:37:35 -05:00
Chris Evich c921e3b9da
Cirrus: Execute docker-py tests on a VM
Signed-off-by: Chris Evich <cevich@redhat.com>
2020-10-14 11:39:27 -04:00
OpenShift Merge Robot 98708b1268
Merge pull request #7967 from cevich/restore_apiv2_test
Cirrus: Restore APIv2 Testing
2020-10-13 21:11:02 +02:00
OpenShift Merge Robot 8fef35a2ff
Merge pull request #7998 from cevich/add_ci_docs
[CI:DOCS] Cirrus: Ability to skip most tests for docs updates
2020-10-13 20:47:41 +02:00
Chris Evich 23087f77ae
Cirrus: Restore APIv2 Testing
Signed-off-by: Chris Evich <cevich@redhat.com>
2020-10-13 11:42:31 -04:00
Chris Evich b7fd5d022d
Cirrus: Ability to skip most tests for docs updates
***Warning***: `skip` has non-obvious side-effects vs `only_if`:
https://cirrus-ci.org/guide/writing-tasks/#conditional-task-execution

The skip instruction can give a false sense of security by always
marking tasks as passed in the UI, even if they didn't run. In
contrast, the `only_if` condition will avoid creating the task
all -together; therefore, a problematic task's absense is more likely to
be noticed if it introduced a problem.

Signed-off-by: Chris Evich <cevich@redhat.com>
2020-10-13 10:17:51 -04:00
Ed Santiago 7c351fbfe2 System tests: run with local podman, not remote
Initially filed as #7967 but that has run into huge complicated
snags related to Ubuntu and environment.

It is crucial to get system tests working with podman-local.
It is less important to get them on Ubuntu. Let's please
expedite this PR while we settle the Ubuntu stuff in #7967

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-10-12 11:08:25 -06:00
Chris Evich 5b7c64cc97
Cirrus: Fix obtaining a CI VM
Also removed automatic exection of setup_environment.sh since most
people using this script are podman developers (not automation/CI
folks).  If executing the automation scripts is necessary, manual
attendance to required variables like `$TEST_FLAVOR` is mandatory.

Signed-off-by: Chris Evich <cevich@redhat.com>
2020-10-07 15:29:43 -04:00
Chris Evich 81c0bb4b6b
Cirrus: Skip deep testing on branches
Previous to this commit, the entire suite of CI tasks run in a PR, run
again for every merge (a.k.a. branch push).  This wastes time and
resources with substantively overlapping testing.  The primary reason
to test on branch-push, is providing coverage for merge-semantics.
In other words, problems introduced due to the sequence of PR merging.
For this purpose, the vast majority of problems can be caught quickly by
a small subset of automated tests.  If deeper debugging is necessary,
then opening a test-PR is a small price to ask for the enormous amount
of time/resource savings with more limited branch-push testing.

Signed-off-by: Chris Evich <cevich@redhat.com>
2020-10-05 13:32:26 -04:00
Chris Evich 2c9084e224
Cirrus: Implement podman automation 2.0
Reimplement CI-automation to remove accumulated technical-debt and
optimize workflow.  The task-dependency graph designed goal was to
shorten it's depth and increase width (i.e. more parallelism).  A
reduction in redundant building (and 3rd party module download) was
also realized by caching `$GOPATH` and `$GOCACHE` early on.  This
cache is then reused in favor of a fresh clone of the repository
(when possible).

Note: The system tests typically execute MUCH faster than the
integration tests.  However, contrary to a fail-fast/fail-early
principal, they are executed last.  This was implemented due to
debug-ability related concerns/preferences of the primary
(golang-centric) project developers.

Signed-off-by: Chris Evich <cevich@redhat.com>
2020-10-02 11:53:04 -04:00
Chris Evich 7c9c159e93
Migrate container images to automation_images
Signed-off-by: Chris Evich <cevich@redhat.com>
2020-10-01 14:27:32 -04:00
Lokesh Mandvekar 16763c3df0 fix build with varlink
also add a cirrus task for building binaries with varlink.
From: Chris Evich <cevich@redhat.com>

Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
2020-09-22 16:46:15 -04:00
OpenShift Merge Robot 961a3d03c8
Merge pull request #7400 from cevich/fix_missing_gpg2
Cirrus: Provide gpg2 in Ubuntu images
2020-09-22 17:43:39 +00:00
Wong Hoi Sing Edison 6ad67cd6c1
Update nix pin with make nixpkgs
Also backport changes from https://github.com/cri-o/cri-o/pull/4065/files#diff-1d37e48f9ceff6d8030570cd36286a61R189-R197

Signed-off-by: Wong Hoi Sing Edison <hswong3i@gmail.com>
2020-09-18 09:42:04 +08:00
Chris Evich a748a887ab
Cirrus: Add gpg2 to Ubuntu images
Signed-off-by: Chris Evich <cevich@redhat.com>
2020-09-17 06:32:33 -04:00
Chris Evich ed1e87ecb5
Cirrus: Obsolete CI:IMG process & related files
All VM-building functionality has been migrated to
https://github.com/containers/automation_images

Some container-build functions are still maintained here
but are on a very-short list to also be migrated to
the repository linked above.

Signed-off-by: Chris Evich <cevich@redhat.com>
2020-09-09 13:46:52 -04:00
OpenShift Merge Robot 11679c27a7
Merge pull request #7538 from edsantiago/cap_test_robust
Update VM images for new crun; adapt Cap tests to work with new kernel
2020-09-08 10:40:39 -04:00
Ashley Cui 4e7ee75dae [CI:DOCS] Add macos build to ci
Adding a mac build to ci for native builds

Signed-off-by: Ashley Cui <acui@redhat.com>
2020-09-04 15:03:41 -04:00
Ed Santiago 36caf4ee44 WIP: update VM images
(This is an adoption of #7533 because Brent is on PTO).

Pick up new crun and crio-runc.

Also: renames from useful fedora-32 and -31 to less-useful
names; presumably this is needed by something-something in
the new VM setup.

Also: tweak two e2e tests to more properly handle a kernel
(5.8.4) with a greater set of capabilities than what we
or crun can yet handle.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-09-03 14:08:34 -06:00
Wong Hoi Sing Edison 41105d81f0
Update nix pin with make nixpkgs
Signed-off-by: Wong Hoi Sing Edison <hswong3i@gmail.com>
2020-08-22 09:28:57 +08:00
OpenShift Merge Robot 516196f096
Merge pull request #7376 from edsantiago/cirrus_specialcase_only_title
Cirrus: special-case CI colon-IMG and colon-DOCS only in subject
2020-08-20 20:55:31 +02:00
Ed Santiago 71adbcc52e Cirrus: special-case CI colon-IMG and colon-DOCS only in subject
As of a few minutes ago (relative to this commit), Cirrus
defines the CIRRUS_CHANGE_TITLE envariable as "First line
of CIRRUS_CHANGE_MESSAGE"[1]. Replace all conditionals
accordingly.

 [1] f8d2530c60

Reasoning: up until this PR, the presence of CI:IMG
or CI:DOCS *in the body* of the commit message would trigger
those magic CI code flows. This violates POLA, and actually
led to a bad PR (#7317) being merged because CI never ran.

Fixes: #7374

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-08-19 11:31:48 -06:00
Chris Evich a1e0a78425
Cirrus: Increase integration-testing timeout
Observed timeout problems hitting some integration-testing
tasks differently than others.  Given the current `Makefile`
has a ginkgo timeout of 90-minutes, the task timeout for
integration tests should be longer. Increase the timeout
of the main integration-test running tasks to the (default)
120min global valie in `.cirrus.yml`.

Signed-off-by: Chris Evich <cevich@redhat.com>
2020-08-19 09:17:22 -04:00
Daniel J Walsh 49fa3e7399
Remove TEST_REMOTE_CLIENT from RCLI
We know these are TEST_, hoping this makes the display in
cirrus easier for users to see true|false, since this is the
valuable information is.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-08-10 12:47:43 -04:00
OpenShift Merge Robot 162625f2e7
Merge pull request #7138 from cevich/add_python_packages
Cirrus: Add python packages to images
2020-08-10 11:52:45 -04:00
Wong Hoi Sing Edison daaccf8896
Speedup static build by utilizing CI cache on /nix folder
Signed-off-by: Wong Hoi Sing Edison <hswong3i@gmail.com>
2020-08-03 11:52:18 +08:00
Chris Evich b9f477aae7
Cirrus: Utilize freshly built images
Signed-off-by: Chris Evich <cevich@redhat.com>
2020-07-31 10:10:25 -04:00
Daniel J Walsh a5e37ad280
Switch all references to github.com/containers/libpod -> podman
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-07-28 08:23:45 -04:00
Ed Santiago 9fad55c87f CI - various fixes
Primary purpose: upgrade crun to 0.14 on f31, in hopes of
eliminating the 'cgroups.freeze' flake that is plaguing CI.

While I'm at it:
- remove a no-longer-needed dnf upgrade that was running in CI
  itself (not image building, in each actual CI run). The purpose
  was to upgrade conmon, but that was added a long time ago and
  the required conmon is now in stable. The effect of this
  dnf upgrade today was simply to cause flakes when fedora
  repos were offline.

- remove a no-longer-needed check for varlink.

- networking.sh : add a timeout! 'openssl s_client' will happily
  hang forever if a host is unreachable, which means we waste
  two hours waiting for Cirrus to time out.

- timestamp.awk : include date (not just time) in START/END msgs.
  There are times when I'm looking at a CI log and it is ultra
  important to know if it is from yesterday or today.

- add progress messages in some places where I've previously
  struggled to understand context in logs; and improve some
  unlikely error messages to include script name.

...then, after all that, wrote a new README about how to to
all this. Hope it helps someone.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-07-25 12:32:53 -06:00
Chris Evich 6acea29a80
Cirrus: Switch to freshly built image
Note: The libpod -> podman change in the image name comes by way of an
intentional repository rename.

Signed-off-by: Chris Evich <cevich@redhat.com>
2020-07-22 11:51:32 -04:00
OpenShift Merge Robot 9f5d1462be
Merge pull request #6955 from edsantiago/logformatter_fix_bucket_name
logformatter: update MAGIC BLOB string
2020-07-22 08:45:15 -04:00
Ed Santiago 7bdf93ee63 logformatter: update MAGIC BLOB string
Fallout from libpod->podman repo name move: the HTML logs
created by logformatter are no longer accessible. They
render as:

    https://storage.googleapis.com/SECRET-5385732420009984-fcae48/artifacts/containers/podman/6313596734930944/html/integration_test.log.html

(yes, "SECRET" instead of "cirrus-ci". Possibly because
the GCE_SSH_USERNAME key, "cirrus-ci", was overzealously
encrypted, making Cirrus censor any instances of the
string in output. Let's see if this fixes it. But anyway
this is a secondary unrelated bug).

Reason: it looks like Cirrus "generated a new magic blob"
when we renamed libpod -> podman. Chris was kind enough to
locate the new magic blob and to give me a link to where
we can discover it ourselves. I added that as a code comment.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-07-20 14:02:14 -06:00
Daniel J Walsh 841eac0af6
Switch references from libpod.conf to containers.conf
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-07-20 15:09:54 -04:00
Wong Hoi Sing Edison f53812a11e
Cleanup nix derivation for static builds
Signed-off-by: Wong Hoi Sing Edison <hswong3i@gmail.com>
2020-07-18 09:03:28 +08:00
Chris Evich 576ce0f1b5
Cirrus: Rotate keys post repo. rename
Encode credentials at new repository settings page
https://cirrus-ci.com/settings/repository/6707778565701632

Ref: https://cirrus-ci.org/guide/writing-tasks/#encrypted-variables

Signed-off-by: Chris Evich <cevich@redhat.com>
2020-07-08 13:20:20 -04:00
OpenShift Merge Robot c44992827d
Merge pull request #6530 from edsantiago/test_podman_remote
Enable, then partially disable, podman-remote testing
2020-06-10 13:19:44 -04:00
OpenShift Merge Robot 9967f28339
Merge pull request #6193 from cevich/conmon_ci_packages
Cirrus: Include packages for containers/conmon CI
2020-06-09 21:22:17 -04:00
Chris Evich 455a94d1f9
Cirrus: Include packages for containers/conmon CI
This allows the containers/conmon repository to share the same VM
images produced by containers/libpod.  Included are several packages
which are downloaded only since they might otherwise interfere with
testing for some repos.  This allows stable versions to be at the ready
at testing runtime, avoiding any version updates surprising developers.

Also, re-enable running the VM-image check test which was not working
due to a logic problem in Cirrus-CI configuration.  Update the neglected
tests so that they pass on all distros.

Signed-off-by: Chris Evich <cevich@redhat.com>
2020-06-09 14:47:23 -04:00
Ed Santiago 15f273b931 WIP: Enable (and disable) remote testing
podman-remote has not been tested. A principal part of the
problem was #5387 - the YAML I wrote did not have the
intended effect, it did not set TEST_REMOTE_CLIENT=true
and because of my multiple iterations I did not catch this
during testing.

Part 1 of this PR is to fix .cirrus.yml to enable remote tests.

Part 2 -- what I had first noticed and tried to fix -- is that
rootless_test.sh was never running remote because, of course,
envariables are not sent via ssh. I reworked integration_test.sh
and rootless_test.sh to use a command-line decision instead.

Part 3, sigh, is to disable one failing integration test
and *all* system tests, because so many of the latter are
failing. Addressing those failures needs to be done in
subsequent PRs. Issues #6538, #6539, #6540 are filed for
some of the problems I isolated. There will be more.

Also, minor, fixed some stale references to varlink.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-06-09 12:43:58 -06:00
Brent Baude efd1422143 Enable Ubuntu tests in CI
Add updates required for ubuntu and run integration tests

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-06-08 12:21:16 +02:00
OpenShift Merge Robot b0578963aa
Merge pull request #6338 from rhatdan/build3
Attempt to turn on special_testing_in_podman tests
2020-06-04 20:02:43 +02:00
Daniel J Walsh 5d69bd88e7
Turn on the podman-commands script to verify man pages
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-06-04 13:02:25 -04:00
Daniel J Walsh 77b8187ea0
Attempt to turn on special_testing_in_podman tests
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-06-04 10:58:37 -04:00
Lokesh Mandvekar 8a914e8a0b default build without varlink tag
Issue gh#6286 was already fixed in a prior commit but the Makefile still
ran some varlink steps by default.

This commit makes any varlink build steps dependent on the varlink
build tag and also makes the contrib rpm spec file independent of
varlink.

Endpoint tests will be run only if BUILDTAGS contains varlink.

Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
2020-05-29 14:38:33 -04:00
Daniel J Walsh 2111217075
Turn on Fedora testing
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-05-23 06:32:02 -04:00
Daniel J Walsh e41089244b
Attempt to turn on build_without_cgo tests
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-05-22 12:56:19 -04:00
Daniel J Walsh 35567e706b
Attempt to turn on additional build tests
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-05-22 12:55:23 -04:00
Daniel J Walsh d68c888765
Enable rootless tests for podman remote
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-05-22 11:12:25 -04:00
Daniel J Walsh 9883bf7e68
Attempt to turn on integration tests
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-05-22 09:41:28 -04:00
OpenShift Merge Robot d6cee18273
Merge pull request #6339 from rhatdan/build4
Attempt to turn on special_testing_endpoint tests
2020-05-22 15:32:19 +02:00