Commit graph

315 commits

Author SHA1 Message Date
Chris Evich 8d979e093e
Cirrus: Build static podman-remote
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>
2021-01-28 13:58:11 -05:00
OpenShift Merge Robot 9d59daa7cc
Merge pull request #9082 from saschagrunert/static-build
Fix static build cache by using cachix
2021-01-27 15:18:22 -05:00
Sascha Grunert f8bf509d16
Fix static build cache by using cachix
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>
2021-01-27 16:15:23 +01:00
OpenShift Merge Robot 41dd1eb8a2
Merge pull request #9022 from cevich/swagger_upload
Cirrus: Upload swagger YAML in every context
2021-01-26 16:53:57 +01:00
Chris Evich 4e4d318b71
Cirrus: Upload swagger YAML in every context
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>
2021-01-21 10:26:57 -05:00
Chris Evich dbb99433d5
[CI:DOCS] Cirrus: Skip smoke task on branch-push
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>
2021-01-21 09:09:23 -05:00
Valentin Rothberg a3621a7cff Cirrus: add bindings checks
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>
2021-01-20 14:38:02 +01:00
baude 683bab03f8 [CI:DOCS]Do not run compose tests with CI:DOCS
Signed-off-by: baude <bbaude@redhat.com>
2021-01-18 10:20:43 -06:00
Chris Evich 1231665e54
Cirrus: Utilize $GOPATH cache for alt_build task
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>
2021-01-13 15:34:58 -05:00
OpenShift Merge Robot b5c8cee932
Merge pull request #8900 from cevich/no_tag_testing
Cirrus: Skip most tests on tag-push
2021-01-12 13:38:59 -05:00
Chris Evich 1d8b9e944f
Cirrus: Add cross-compile test for alternative arches
Followup to https://github.com/containers/podman/pull/8907 that simply
ensures cross-compiling podman completes.

Signed-off-by: Chris Evich <cevich@redhat.com>
2021-01-11 13:46:37 -05:00
Chris Evich 201d853283
Cirrus: Skip most tests on tag-push
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>
2021-01-07 11:26:34 -05:00
Chris Evich e467400eb1
Cirrus: Update Fedora & Ubuntu images
Signed-off-by: Chris Evich <cevich@redhat.com>
2021-01-06 10:08:48 -05:00
Chris Evich e3ba7092fb
Cirrus: Add support for Ubuntu 20.x
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>
2020-12-15 18:49:09 -05:00
baude 82d7b9f2e2 add compose regression to ci
to prevent any regressions, we should be running regression tests using
compose.

Signed-off-by: baude <bbaude@redhat.com>
2020-12-11 09:26:29 -06:00
Daniel J Walsh f62a356515
Remove varlink support from Podman
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-11-26 16:50:42 -05:00
Chris Evich b8d25bd2cd
Cirrus: Invalidate static cache on VM image update
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>
2020-11-16 15:23:08 -05:00
OpenShift Merge Robot 2e9c94235b
Merge pull request #8107 from cevich/measure_testing_stats
Cirrus: Collect runner.sh stats
2020-11-12 20:08:47 +01:00
Ed Santiago 92e31a2085 Cirrus: update VMs
Reason: include perl-FindBin RPM in f33 VM, needed for
hack/xref-helpmsgs-manpages

Ref: https://github.com/containers/automation_images/pull/39

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-11-11 08:56:08 -07:00
Chris Evich 3e7100b44b
Cirrus: Run validation tests in CI:DOCS mode
Signed-off-by: Chris Evich <cevich@redhat.com>
2020-11-11 09:14:41 -05:00
Chris Evich f44af20561
Cirrus: Detailed CPU/Memory/Time runner.sh stats
On several occasions, there have been questions about CPU/Memory/IO
trends in testing over time. Start collecting this data for all jobs,
using a common/stable format so that trending analysis can be performed
within/across multiple Cirrus-CI builds. This PR doesn't add any related
tooling, it simply arranges for the collection of the data.

Stats generation is done at the orchestration level to guarantee they
reflect everything happening inside `runner.sh`.  For example, the
container-based tests re-exec `runner.sh` inside a container, but
we're only interested in the top-level stats.

Update all tasks to include collection of the stats file.
Unfortunately, due to the way the Cirrus-CI YAML parser works,
it is *not* possible to alias the artifacts collection more clearly,
for example:

```yaml
    always:
        <<: *runner_stats
        <<: *logs_artifacts
```

Signed-off-by: Chris Evich <cevich@redhat.com>
2020-11-09 14:32:39 -05:00
Chris Evich 46498331a3
Cirrus: Use F33beta VM image
Includes disk-space increase for all Fedora images to accommodate
the static-build job disk space requirements.  This job substantially
leverages task-cache, which was previously failing to restore early on
in the Cirrus-CI task setup, due to disk-space limitations.

Also simplify .cirrus.yml slightly by removing an unncessary setup
and run directory change step.

Signed-off-by: Chris Evich <cevich@redhat.com>
2020-11-04 09:40:38 -05:00
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