1049 Commits

Author SHA1 Message Date
3b63432027 Fix windows installer
Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
2023-07-18 00:05:21 +01:00
499b8d13c5 CI: remove build without cgo task
Podman is basically unusable without cgo, checking if it compiles
without adds no value and just tricks people into thinking it works when
it does not.

This means we do not need extra to NOP out a lot of cgo calls with
functions that just return an error like `XXX is not supported without
cgo`.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-07-10 13:33:03 +02:00
e4644c3cb8 Cirrus: build FreeBSD binaries in a VM
Using a FreeBSD VM allows building a functioning binary via 'make
podman-release'. This uses Cirrus' freebsd_instance which provisions VMs
on Google Compute Engine.

I attempted to add FreeBSD binaries to the artifacts task but this
failed, apparently because the extra 50Mb of space exceeded a 1Gb limit
in Cirrus.

[NO NEW TESTS NEEDED]

Signed-off-by: Doug Rabson <dfr@rabson.org>
2023-07-03 16:19:43 +01:00
de494eb05a logformatter: ignore 'TOP-LEVEL' headings
When an e2e test fails in AfterEach, ginkgo "helpfully" adds
a heading in that test log block:

  TOP-LEVEL [AfterEach]
  /path/to/source.go
    Podman Desc Blah

That TOP-LEVEL line screws up our in-page links. Ignore it
both in the heading and in the bottom failure-summary lines.

Add test, including tests for bottom-summary.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-06-13 09:07:23 -06:00
02432fc692 cirrus,ci: default to overlay for debian env
In debian environment we are hitting an edge-case where older buildah
version is not compatible with newer podman version because both of them
are using different storage driver.

I.e
* Podmand defaults to native `overlay`.
* Older buildah version defaults to `vfs`.

See discussions below for more details
* containers#18510 (comment)

Co-authored-by: Ed Santiago <santiago@redhat.com>
Signed-off-by: Aditya R <arajan@redhat.com>
2023-06-09 10:43:58 +05:30
137c8ef4d5 logformatter: better recognition of ginkgo test names
Ginkgo test names can have more than two levels: there can be
a nested series of Describes() before the final It(). (e.g.,
quadlet_test.go). Handle that.

Before: we just assumed that the third-or-maybe-fourth line
after a "-----" divider was the test name.

Now: examine every line after the "-----" divider, until the
first empty line. Lines with /path/to/source/file are ignored,
lines with text strings are assembled together to make anchors.
This is still imperfect but it's much better than before.

SPECIAL NOTE: in order to allow linking to timing results
in the AfterSuite, I've changed the test name from Leaf to Full.
This will now be a much longer string, and hence much less
readable, but I'm inclined to think it's more correct. Please
review carefully and lmk if I should revert.

Finally, as an unrelated add-on, add links (at top) to original
log, journal, and (if applicable) podman-remote server logs.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-06-06 14:32:15 -06:00
c51c6675ee logformatter: proper status color for failed tests
Fix an oops in my ginkgo-v2 handling: subtest-status was
getting re-reset back to "passed", resulting in incorrect
and misleading green titles on failed tests.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-06-05 05:59:11 -06:00
e6bfc81a8f RPM: bump gvisor-tap-vsock subpackage and fix packit scripts
gvisor-tap-vsock:
- bump to v0.6.1
- installs /usr/libexecdir/podman/gvforwarder

packit:
- fix pre-sync action in propose-downstream
Ref: https://dashboard.packit.dev/results/propose-downstream/2581

cleanup:
- remove `contrib/spec/python-podman.spec.in`. No longer needed.

[NO NEW TESTS NEEDED]

Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
2023-05-26 14:32:52 -04:00
d7b811677e Merge pull request #18652 from anjannath/update-qemu
pkginstaller: bump Qemu to version 8.0.0
2023-05-23 07:11:14 -04:00
94c65a659c TEMPORARY(?) instrumentation for unlinkat-ebusy
Instrument system tests in hopes of tracking down #17216,
the unlinkat-ebusy-hosed flake.

Oh, also, timestamp.awk: timestamps have always been UTC, but
add a 'Z' to make it unambiguous.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-05-22 10:34:37 -06:00
d623670e1a pkginstaller: bump Qemu to version 8.0.0
this updates the Makefile qemu version to make use new qemu released at
https://github.com/containers/podman-machine-qemu/releases/tag/v8.0.0-1

[NO NEW TESTS NEEDED]

Signed-off-by: Anjan Nath <kaludios@gmail.com>
2023-05-22 21:43:21 +05:30
abea786b15 Merge pull request #18545 from cevich/podman_next
Cirrus: Add support for podman-next magic
2023-05-18 06:50:20 -04:00
99cedae317 Cirrus: Record the buildah version for reference
Apparently this matters, see
https://github.com/containers/podman/pull/18510#discussion_r1189812306

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-05-17 11:30:13 -04:00
d1dcb0846b Cirrus: Add support for [CI:NEXT]
Rather than supporting a special-mode *just* for netavark/aardvark
testing [in podman CI], support testing with all the latest
`podman-next` COPR packages.

The idea here is very similar to the netavark/aardvark special mode it
replaces.  Most podman-dependencies do not have the level of
comprehensive CI as exist here.  This new CI-mode allows testing
upstream updates to podman-dependencies without needing to roll out
a whole new package/release for them.

Also update documentation for this new mode.

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-05-16 12:18:00 -04:00
eb4f0bc17d Cirrus: Remove support for [CI:COPR] magic
This magic string isn't often used and may cause confusion with future
magic-string additions.  Remove it.

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-05-16 12:17:59 -04:00
3360214a0f system tests: add precision timestamps
In run_podman(), display a nanosecond-level timestamp next to
each command and its output.

Because this clutters the results, teach logformatter to grok
these new timestamps, strip them, and display a more human-readable
time delta in the left-hand timestamp column. logformatter started off
as a mess and is now, well, 🤮. I'm sorry. I just hope its results
make it worthwhile.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-05-16 09:34:33 -06:00
cb8e19677f logformatter: handle podman-machine test logs
With -p, ginkgo emits timing information on the first line
after dashes. Without -p, it's at the end.

Most tests use -p. Podman-machine does not. Deal with that.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-05-09 11:08:59 -06:00
f877d7dcd0 Replace egrep/fgrep with grep -E/-F
There are days when I really, really, really hate GNU. Remember
when someone decided that 'head -1' would no longer work, and
that it was OK to break an infinite number of legacy production
scripts? Someone now decided that egrep/fgrep are deprecated,
and our CI logs (especially pr-should-include-tests) are now
filled with hundreds of warning lines, making it difficult
to find actual errors.

I expect that those warnings will be removed quickly after
furious community backlash, just like the 'head -1' fiasco
was quietly reverted, but ITM the warnings are annoying
so I capitulate.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-05-03 07:32:42 -06:00
ae5305134f Revert "logformatter: anchors: link to test summary, not name"
It looks like tell/seek don't work in CI-land: important test log
information is being lost. Revert this commit, maybe some day I'll
come up with a better solution.

This reverts commit 1bff0108f6275cc8290e649833f3a194cd6e9ee1.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-05-02 10:03:29 -06:00
1bff0108f6 logformatter: anchors: link to test summary, not name
Super-complicated and ugly code merely to make in-page anchors
link three lines above the subtest name, to the subtest status
and timing line.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-05-02 11:27:40 +02:00
914ff01f94 WIP: logformatter: handle ginkgo v2 logs
Checkpoint as of Thursday April 13 afternoon.

Please do not merge with this; the .t file (tests) needs to
be updated, and there are probably many more fixes/improvements
I still need to make.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-05-02 11:27:39 +02:00
2ce4e935be ginkgo v2: drop localbenchmarks
Porting them over to v2 requires a full rewrite.
IT is not clear who actually uses these benchmarks, Valentin who wrote
them originally is in favor of removing them. He recommends to use
script from hack/perf instead.

This commit also drop the CI integration, it is not clear who actually
uses this data. If it is needed for something please speak up.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-05-02 11:27:38 +02:00
5156ab996c Cirrus: Enable testing on Fedora rawhide
Signed-off-by: Chris Evich <cevich@redhat.com>
2023-04-20 15:54:33 -04:00
f95276bfaf CI: enable sqlite system tests
In setup, write a containers.conf.d file with db_backend
as specified in .cirrus.yml.

This is actually much scarier and more achy-breaky than
merely "sqlite system tests": it enables sqlite in e2e
tests. ("But wait, we already do that!" -- no, not really.
sqlite in e2e is being done via --db-backend option, and
some podman commands in e2e do not use the standard options.
See #17904.

This is unlikely to get merged any time soon (March, maybe
even April) because sqlite is still too fragile; this will
trigger more flakes than are currently acceptable. Also,
the nasty auto-update flake seems to trigger much more
reliably with sqlite. We need that one fixed.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-04-12 07:16:57 -06:00
11ac0d03e3 Debian setup: workaround for runc /dev/char/10:200 bug
Debian system tests failing due to unwanted warning:

   skipping device /dev/char/10:200 for systemd:
      stat /sys/dev/char/10:200: no such file or directory

Let's see if modprobing tun will eliminate the warning.
Add loud comments requesting removal once runc bug is fixed.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-04-11 06:34:43 -06:00
cf6f137045 CI: postbuild step: skip under nightly treadmill
Principally because 'make completion' fails if we transitively
bring in a new cobra, but also, none of the other tests are
meaningful under the treadmill.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-04-06 11:49:50 -06:00
80f9f80770 Don't error when removing non-existant env vars
[NO NEW TESTS NEEDED]

Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
2023-04-04 16:26:53 -05:00
78e7ade0da Fix Win install task failures with large PR bodies
MSI Validation will fail if the process env is > 32k chars
Remove CIRRUS_COMMIT_MESSAGE and CIRRUS_PR_BODY which can easily exceed this limit

[NO NEW TESTS NEEDED]

Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
2023-04-02 22:44:42 -05:00
4c72fc26b1 fix os.IsNotExist() CI check
The os.IsNotExist() function comment mentions that new code should use
`errors.Is(err, fs.ErrNotExist)` instead.

The check was already in CI but used the wrong function name (extra s.)

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-03-27 17:03:03 +02:00
64ba82601a macos pkginstaller: do not fail when podman-mac-helper fails
Make sure we can install podman even when the podman-mac-helper install
command fails. This used to be the behavior but commit bae07b6ea2 caused
the regression because the binary now returns 1 as exit code on errors.

[NO NEW TESTS NEEDED] I am not sure if we can test the install step in
CI.

Fixes #17910

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-03-24 16:05:56 +01:00
3820554aa9 Merge pull request #17735 from cevich/bench_stuff
Cirrus: Store podman machine benchmark data
2023-03-21 14:05:54 -04:00
5447e88b42 logformatter: hide --db-backend, and friendlyize quadlet
* There's a new --db-backend option. Hide it, and actually
  just assume that any new --foo-backend option will
  have an arg that needs to be hidden.

* Friendly-ize "Running: quadlet ..." because those messages
  include a "with QUADLET_FOO=bar" string that looks like
  it's part of the command line but is not, and it's really
  hard for a human eye to see what's command line and what's
  extra comment.

Add tests.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-03-20 12:37:01 -06:00
526dfb8936 logformatter: futureproof output filename
"Just this once", I thought, adding an obscure unmaintainable
duplication to the CI code. When will I learn?

This fixes the logformatter output filename to handle boltdb/sqlite.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-03-16 08:31:36 -06:00
e929552457 Cirrus: Store podman machine benchmark data
Future work will present podman-machine benchmark data in some useful
format for analysis.  However, this data is currently only stored as CI
artifacts.  When CI runs on the main branch, after a PR merges, utilize
a pair of purpose-built containers to retrieve then upload the data into
a GCE firestore database.  This operation should not be critical, such
that any faults will not cause the entire CI build to be marked as a
failure.

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-03-15 15:03:24 -04:00
6142c16a9c Ensure SQLite places uses the runroot in transient mode
Transient mode means the DB should not persist, so instead of
using the GraphRoot we should use the RunRoot instead.

Signed-off-by: Matt Heon <mheon@redhat.com>
2023-03-15 14:45:28 -04:00
39fd9aa084 Add SQLite job to CI
Signed-off-by: Matt Heon <mheon@redhat.com>
2023-03-15 14:44:47 -04:00
0d219486f7 [CI:DOCS] Fix docs/version-check always requesting updates
As suggested by @edsantiago, the complex script and direct-link in the
docs are adding little value while increasing the CI maintenance burden.
Simply retire the script and strip the direct (versioned) links from the
docs.

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-03-02 14:18:20 -05:00
1e516e657b pkginstaller: bump Qemu to version 7.2.0
this updates the Makefile qemu version to make use new qemu released at
https://github.com/containers/podman-machine-qemu/releases/tag/v7.2.0-1

[NO NEW TESTS NEEDED]

Signed-off-by: Anjan Nath <kaludios@gmail.com>
2023-02-28 11:53:47 +05:30
1f6f81f5d4 Temporarily disable version-check
The script is broken and the maintainer temporarily unavailable to help
fix it.  Disable it for now, w/ reference to possible fix.

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-02-23 14:54:03 -05:00
93e7cc119a Cirrus: Support runc testing on debian VMs
Also remove disused `gitlab` test setup.  This test was disabled a
while ago and is unlikely to ever be revived.

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-02-22 10:55:13 -05:00
5d78547ec2 Merge pull request #17458 from cevich/fix_benchmarks_env
Cirrus: Omit functions in env. file
2023-02-16 11:04:36 -05:00
8a6b373027 Merge pull request #17505 from edsantiago/fix_dns
Experimental workaround for cdn03.quay.io flake
2023-02-16 09:27:15 -05:00
c7ee65596f Experimental workaround for cdn03.quay.io flake
I can't find instances of the "lookup cdn03.quay.io" flake
in RHEL gating tests. RHEL does not use systemd-resolved.
Maybe pure coincidence. Maybe not.

Let's try disabling systemd-resolved and see how things go.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-02-15 15:22:48 -07:00
86e55d0ec1 system tests: prevent leading tabs
Replace existing tab indentations with spaces, and add
a test to CI to prevent new ones from sneaking in.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-02-15 13:50:17 -07:00
a5ca732256 Fix typos
Software version used
https://github.com/crate-ci/typos/releases/tag/v1.13.10

The binary was downloaded from
https://github.com/crate-ci/typos/releases/download/v1.13.10/typos-v1.13.10-x86_64-unknown-linux-musl.tar.gz

Command that was run:

typos --write-changes docs cmd cni contrib dependencies docs hack libpod pkg utils

False positives were manually removed.
A few marshaling/existant typos were manually fixed.

Signed-off-by: Erik Sjölund <erik.sjolund@gmail.com>
2023-02-11 18:23:24 +01:00
45fb353f46 Cirrus: Make benchmarks .env file easier to load
The `benchmarks.env` file is intended for machine consumption.
Including things like a `kB` unit label (like `$MEMTOTAL`) make items
difficult to parse.  Additionally, multi-value keys (like `$UNAME_RM`)
make extra/unnecessary work for the interpreter.  Simplify these items
and include a data-schema version marker so an interpreter can be made
aware/support future format changes.

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-02-10 13:57:53 -05:00
a7db3e8d2c Cirrus: Omit functions in env. file
The `localbenchmarks()` function stores a `.env` file containing current
environment variables for benchmark-classification purposes.  However its
naked use of `printenv` means it was logging the contents of library
functions and (worse) trying to stort all the lines.  This results in an
unusable mess inside `benchmarks.env`.  Fix this by re-using the
purpose-built passthrough_envars() which is designed to only print
useful, safe, env. vars.

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-02-10 12:07:13 -05:00
5865159766 Run codespell on codebase
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2023-02-09 08:02:43 -05:00
50f72fe7b1 [CI:BUILD] Cirrus: Fix GraphQL ownerRepository:null error
A semantic change to a Cirrus-CI GraphQL API parameter caused a
unit-test to fail (as it should have) with the error:

```
Query result did not pass filter '.data.ownerRepository.cronSettings':
'{"data":{"ownerRepository":null}}'
```

As per Cirrus-support, a change was introduced in schema affecting certain
fields that were incorrectly marked Nullable.  They indicated the `platform`
field was set incorrectly, and should use the value `github`.

* Fix the platform field's value to `github` instead of `LINUX`.
* Change the unit-test to only execute as part of the 'main' cirrus-cron
  job so it cannot impact PRs.

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-02-06 15:57:51 -05:00
84c674fee0 Revert "Cirrus: Emergency fix to un-stuck PRs"
This reverts commit 6b3073f53e63c824b349266d45a58a6d8fe02e98.

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-02-06 13:45:04 -05:00