201 Commits

Author SHA1 Message Date
14186ca28e fix timeout file flake
this is a temporary fix for the flake that has been troubling us.  once conmon is in fedora 30 and 31 stable, we can remove this fix.  the images will just need to be rebuilt.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-17 15:44:39 -05:00
3003384785 Four small CI fixes:
1) 'podman system info' (in logcollector): has been silently
     failing in special_testing_rootless, with:
       logcollector.sh: line 16: podman: command not found
     Use ./bin/podman instead of just podman; this is probably
     the right thing to do in the general case anyway

  2) logformatter: highlight 'panic:', seen in bindings test:
        https://storage.googleapis.com/cirrus-ci-5385732420009984-fcae48/artifacts/containers/libpod/6693715108429824/html/integration_test.log.html

  3) logformatter: handle Unicode bullet in front of 'Running',
     seen in bindings test.

  4) logformatter: turn down contrast on BATS 'ok' results,
     for legibility

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-03-16 11:37:27 -06:00
194759b96e turn off color-mode for bindings
the binding ginkgo tests were using color mode which throws in a bunch of ansi garbage that makes it hard to read the logs

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-12 13:45:56 -05:00
ac354ac94a Fix spelling mistakes in code found by codespell
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-03-07 10:30:44 -05:00
8b5e2a6297 add default network for apiv2 create
during container creation, if no network is provided, we need to add a default value so the container can be later started.

use apiv2 container creation for RunTopContainer instead of an exec to the system podman. RunTopContainer now also returns the container id and an error.

added a libpod commit endpoint.

also, changed the use of the connections and bindings slightly to make it more convenient to write tests.

Fixes: 5366
Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-06 14:31:45 -06:00
60e9e7ca9c Merge pull request #5039 from cevich/fix_gobin_exit_bug
Cirrus: Fix gate image & false-positive exits
2020-03-05 19:28:10 +01:00
1814638000 CI: format cirrus logs
This introduces a new cirrus helper script, logformatter.
Usage is:

    [commands...] | logformatter TEST-NAME

It reformats its input into a readable, highlighed, linkable
form. Some features:

   - boring stuff (timestamps, standard podman options) is
     deemphasized
   - important stuff (warnings, errors) is emphasized
   - in-page links to the actual failures
   - active links to source files
   - jumps to bottom of page on load, because that's where
     the errors are. (All errors are linked)

Add it to select test commands (integration, system) and
add a new artifacts_html, run in the 'always' block, which
uploads generated *.log.html into Cirrus; from there we
generate a live URL that can be viewed in browser.

Unfortunately, due to security concerns in Cirrus, it is
not currently possible to make the link a live one.

Kludge: add a line of dashes after Restoring images; without this,
the first test ("systemd PID 1") has no dashes before it, so
logformatter doesn't see it.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-03-02 15:55:05 -07:00
5612089412 CI: add API v2 tests
API v2 has been quiet for a few days, and the test script is
actually passing. Let's take advantage of this opportunity
to get them running in CI.

Requires adding a check for cgroupsv2

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-03-02 13:19:42 -07:00
d0782e7839 Cirrus: Fix gate image & false-positive exits
A number of scripts relating to tooling used and the gate container
image were not exiting upon errors as intended.  Coupled with
external service unavailability (i.e. downloading golangci-lint)
was observed to cause difficult to debug failures.

This change corrects the scripts inside/out of the gate container as
well as fixes many golang related path consistency problems vs other CI
jobs.  After this change, all jobs use consistent path names reducing
the number of special-case overrides needed.

Lastly, I also made a documentation-pass, updating/correcting as needed,
including documenting a likely local validation-failure mode, related to
`$EPOCH_TEST_COMMIT`.  This is dependent on the developers git
environment, so documentation is the only possible "fix".

Signed-off-by: Chris Evich <cevich@redhat.com>
2020-03-02 08:50:54 -05:00
0885f76742 Cirrus: Force runc use in F30
Suspect crun might be sneaking in during VM image build via podman RPM
dependency.  Add it to the removal list when building, then also force
use of runc at runtime in F30.

Also quote all true/false vars to force them as strings instead of
booleans (which will become capitalized)

Signed-off-by: Chris Evich <cevich@redhat.com>
2020-02-28 10:37:31 -05:00
c96eb612e5 Cirrus: Remove unnecessary handle_crun workaround
Signed-off-by: Chris Evich <cevich@redhat.com>
2020-02-28 09:54:36 -05:00
e874b5b222 Cirrus: Print env. vars at end of setup.
There are a number of env. vars set during the setup script.  Therefore
displaying them at end of the script is more helpful for debugging.

Signed-off-by: Chris Evich <cevich@redhat.com>
2020-02-28 09:54:36 -05:00
42f04bbdaf Cirrus: Fix not growing Fedora root
Signed-off-by: Chris Evich <cevich@redhat.com>
2020-02-28 09:54:35 -05:00
cabd6c1607 CI: package_versions: include hostinfo, kernel
In the package_versions CI step, include Fedora/Ubuntu
version, uname -r, and cgroups version.

Cgroups version is simply the FS type of /sys/fs/cgroup,
which shows 'tmpfs' for v1 and 'cgroup2fs' for v2. I
don't think it's worth the effort to prettify those
into 'v1/v2' - I think our readers are sophisticated
enough to figure it out from context - but am willing
to add that feature if requested.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-02-27 09:40:35 -07:00
5973641404 Cirrus: SELinux Enforcing for F31 w/ CGv2
Signed-off-by: Chris Evich <cevich@redhat.com>
2020-02-25 12:34:26 -05:00
7e95e1e25c Cirrus: collect podman system info
Signed-off-by: Chris Evich <cevich@redhat.com>
2020-02-25 12:34:25 -05:00
0ac0e6e612 Cirrus: F31: Force systemd cgroup mgr
Signed-off-by: Chris Evich <cevich@redhat.com>
2020-02-25 12:34:25 -05:00
614917d6aa Cirrus: Handle runc->crun when both are possible
In some distributions it's possible to have both runc and crun
installed and/or for podman to be confused about which to use.  In these
instances, force the decision by adding `OCI_RUNTIME=/usr/bin/crun` into
`/etc/environment`. Also in-place modify libpod.conf to use 'crun'
instead of 'runc'

Signed-off-by: Chris Evich <cevich@redhat.com>
2020-02-25 12:34:25 -05:00
70b28bc2cc Cirrus: Use deadline elevator in F31
The default scheduler is BFQ but integration tests run into

https://bugzilla.redhat.com/show_bug.cgi?id=1767539
aka
https://bugzilla.kernel.org/show_bug.cgi?id=205447

Using the deadline elevator as a workaround.

Signed-off-by: Chris Evich <cevich@redhat.com>
2020-02-25 12:34:25 -05:00
e0ca4a2260 Cirrus: Support testing with F31
Signed-off-by: Chris Evich <cevich@redhat.com>
2020-02-25 12:34:24 -05:00
a64985c71b enable ci on go binding tests
Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-02-22 09:43:19 -06:00
cc0f7defdc [CI:DOCS]Connect API docs and RTD
Signed-off-by: baude <bbaude@redhat.com>
2020-01-17 15:12:35 -06:00
9be6f30a42 post-process swagger yaml for publish
Signed-off-by: baude <bbaude@redhat.com>
Signed-off-by: Chris Evich <cevich@redhat.com>
2020-01-17 15:41:33 -05:00
e83a1b87da Merge pull request #4817 from rhatdan/codespell
Add codespell to validate spelling mistakes in code.
2020-01-13 17:59:58 +01:00
4093b2c011 Add codespell to validate spelling mistakes in code.
Fix all errors found by codespell

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-01-11 06:32:19 -05:00
49be255fee Cirrus: Fix libpod base images going stale
VM Base images are used as a starting point for runtime VM images.
The in-use VM base images should never be pruned, which is an
operation that potentially occurs periodically from automation
running on the master branch of the libpod repo.

However the only place which updates timestamps (blocking pruning)
of base images, occurs during runtime VM image building.  Therefor,
if images are not regularly rebuilt, it's possible their base images
go stale and are pruned.

Changes:

* Add freshly-produced base images (old ones got pruned)
* Wrap the timestamp update script to include base image names
in the update list.

Notes:

* Regularly updating base image timestamps only needs to happen
on the libpod repo's meta task, since all base images live there.
* Using a wrapper is needed to maintain compatibility with multiple
versions of the imgts container image used by other repos / branchs.

Signed-off-by: Chris Evich <cevich@redhat.com>
2020-01-10 13:13:27 -05:00
8d928d525f codespell: spelling corrections
Signed-off-by: Dmitry Smirnov <onlyjob@member.fsf.org>
2019-11-13 08:15:00 +11:00
5f3a61ed42 Add support for make vendor-in-container
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-11-08 06:27:17 -05:00
45e0bd3891 Merge pull request #4379 from cevich/fix_upload_release_archive
Cirrus: Fix upload_release_archive on branch or tag
2019-10-30 21:31:32 +01:00
326ef19d94 Cirrus: Fix upload_release_archive on branch or tag
Cirrus-CI only sets `$CIRRUS_BASE_SHA` when testing PRs since the
destination and it's state is easy to discover.  However, when
post-merge and/or tag-push testing, the previous state is not
easily discoverable (changes have already merged).  The
`upload_release_archive` script incorrectly assumed this
variable was always set, causing a constant stream of post-merge
testing failures.

Tweak the `is_release()` function to properly handle an empty
`$CIRRUS_BASE_SHA` whether or not `$CIRRUS_TAG` is also set.  Also
update the unit-tests to check for this.  Also account for a
corner case where hack/get_ci_vm.sh is running on a VM w/o git.

Signed-off-by: Chris Evich <cevich@redhat.com>
2019-10-30 14:31:38 -04:00
9ba8dae0bf Merge pull request #4365 from cevich/safe_load
Cirrus: Fix minor python deprecation warning
2019-10-30 18:10:16 +01:00
2046be6ae0 build: drop support for ostree
it is going to be removed from containers/image as well, so no longer
depend on it.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-10-30 11:28:10 +01:00
d4c80b755e Cirrus: Fix minor python deprecation warning
Signed-off-by: Chris Evich <cevich@redhat.com>
2019-10-29 10:45:08 -04:00
8303eb3037 Cirrus: Only upload tagged releases
Prior to this commit, every push to master had it's builds packaged and
uploaded to google storage.  This is a waste, since potential users
are only ever concerned about tagged releases.

Unfortunately because the release process involves humans with
potentially multiple human and automation steps happening in parallel,
it's easy for automation to not detect a tagged release, or trigger on
development|pre-release tags.

Fix this in `upload_release_archive.sh` using a new unit-tested
function `is_release()`.  This acts as the definitive authority
on whether or not a specific commit rage or `$CIRRUS_TAG` value
constitutes something worthy of upload.

Signed-off-by: Chris Evich <cevich@redhat.com>
2019-10-29 10:34:58 -04:00
2bf184aa01 Merge pull request #4222 from cevich/collect_varlink_log
Cirrus: Produce and collect varlink output
2019-10-09 14:33:14 -07:00
ffe726ed64 Cirrus: Produce and collect varlink output
When executing 'make remotesystem' testing, a varlink process is started
up but it's stdio is dumped due to the production of excessive data.
However, this also means if the process has a problem, any errors will
not be accessible.

Instead, grab only the last 100 lines and direct them into a file.  Also
update automation's log collection to retrieve this file when the
`$REMOTE_CLIENT` env. var. is `true`.

Signed-off-by: Chris Evich <cevich@redhat.com>
2019-10-08 16:47:37 -04:00
09b6cd06c8 Cirrus: Install conmon in Fedora VMs
This is needed because older versions of podman (1.5.1) do not
automatically install the new conmon package.

Also, include removal of `/usr/libexec/podman/conmon` when preparing to
install and test podman built from source.

Signed-off-by: Chris Evich <cevich@redhat.com>
2019-10-07 11:27:45 -04:00
5756fd8ff9 Cirrus: Simplify package NVR logging
Also include runc/crun version for Fedora

Signed-off-by: Chris Evich <cevich@redhat.com>
2019-10-03 15:53:07 -04:00
7e47abe1f7 Merge pull request #4154 from cevich/show_packages
Cirrus: Show names/versions of critical packages
2019-10-01 08:42:04 -07:00
049aafa4c0 Merge pull request #4090 from vrothberg/build-catatonit
Build catatonit
2019-10-01 06:05:22 -07:00
0b5100ff79 Cirrus: Show names/versions of critical packages
Adds an output to all testing tasks which lists the names/versions of
critical/essential packages present on the VM.

Signed-off-by: Chris Evich <cevich@redhat.com>
2019-10-01 08:54:50 -04:00
01b7af8ee9 Merge pull request #4100 from cevich/cache_image_docs
Cirrus: VM Image accounting doc update
2019-09-29 07:11:31 -07:00
742a8b0c6e Merge pull request #4028 from cevich/add_bash_completion_support
cirrus: Add bash-completion support
2019-09-29 07:01:46 -07:00
8368a894ba Cirrus: Disable boottime Ubuntu package update
Signed-off-by: Chris Evich <cevich@redhat.com>
2019-09-26 12:36:33 -04:00
b9e21af44f cirrus: Add bash-completion support
This is fairly standard thing to have on a user's workstation, supported
by podman.  When installed in a VM image, then it's useful for debugging
with `hack/get_ci_vm.sh` at the cost of a minor increase in disk-space.

Signed-off-by: Chris Evich <cevich@redhat.com>
2019-09-26 09:58:16 -04:00
80f6af7766 catatonit: clone and build
Instead of unconditionally pulling the x86 binary, clone the repository
and build the binary to make it independent of the architecture.

Fixes: #2699
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2019-09-25 11:05:41 +02:00
601052b386 Cirrus: Upload windows MSI release file
Signed-off-by: Chris Evich <cevich@redhat.com>
2019-09-24 15:13:40 -04:00
85bfd70c91 Cirrus: VM Image accounting doc update
Signed-off-by: Chris Evich <cevich@redhat.com>
2019-09-24 11:27:42 -04:00
c0eff1a81c Merge pull request #4071 from cevich/more_podbot
Cirrus: More podbot/success improvements
2019-09-22 16:57:54 +02:00
831a64393e Cirrus: disable Evil Units in base-images
Also, minor update to prevent harmless 'Fatal: not a git repo' error.

Signed-off-by: Chris Evich <cevich@redhat.com>
2019-09-20 14:34:13 -04:00