480 Commits

Author SHA1 Message Date
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
b721f96f5b Merge pull request #19074 from dfr/freebsd-build-test
Cirrus: change FreeBSD CI build to run in a VM
2023-07-06 08:06:38 -04:00
2d68c3addd [CI:BUILD] Minor: Don't confuse osx-debugging
Many/most env. vars set by the `stdenvars` alias do not apply to the
`osx_alt_build` task.  In case anybody debugging a job might be confused
by them, use more meaningful values.

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-07-03 11:40:36 -04: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
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
71853319fd Skip rhel-release branch unnecessary CI tasks
RHEL release-branches potentially need to be maintained for a very long
time.  Improve reliability and CI-speed by skipping tasks which are not
needed for RHEL.  For example, there will (likely) never be RHEL
releases of the MacOS or Windows versions of podman-remote.  Also,
relocate the `win_installer_task` in the config. to better reflect it's
sequence among CI tasks.

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-05-15 11:35:27 -04:00
54fd0d752e e2e tests: try writing & preserving ginkgo json artifacts
ginkgo v2 has new options, --junit-report and --json-report.
The JUNIT one is utterly worthless: no timing data, no
separation between test output (podman commands) and
ginkgo output (filenames, linenumbers). JSON goes the
other direction, super-complicated, but I think I can
work with it. Let's try it.

This PR does not actually _do_ anything with the json; all
we do is save it. Over time, I'll download and play with it
and see what I can do with it.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-05-02 10:57:39 -06:00
b9ba850440 Lower e2e timeout to not waste time when it hangs
Ginkgo v2 can result in the test just hanging at the end if there is
some bug which is leaking processes. The tests never take 90 mins
anyway. Just lower that time to 50 mins max. Usually they take between
30-40 mins so we should be fine with 50 mins.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-05-02 11:27:36 +02:00
19152fa349 Merge pull request #18326 from cevich/f38_update
Cirrus: Update CI VM Image to F38
2023-04-27 12:42:56 -04:00
20c42489e3 Nightly dependency treadmill: remove
...it never worked as intended. Cron job has been deleted.

(Note: this is not the same as the *buildah* treadmill, #13808,
which continues to be active and necessary)

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-04-27 05:56:23 -06:00
7ff2eaf960 Cirrus: Update CI VM Image to F38/37
Signed-off-by: Chris Evich <cevich@redhat.com>
2023-04-26 14:55:05 -04:00
0e1ddd3dff Cirrus: Run code validation on rawhide
Signed-off-by: Chris Evich <cevich@redhat.com>
2023-04-26 14:55:05 -04:00
d05a980792 Merge pull request #18288 from cevich/enable_rawhide_testing
Cirrus: Enable testing on Fedora rawhide
2023-04-24 08:20:08 +00:00
c263c18709 Merge pull request #18290 from cevich/rm_benchmarks_artifacts
Cirrus: Drop benchmarks artifact collection
2023-04-20 23:03:03 +00:00
5156ab996c Cirrus: Enable testing on Fedora rawhide
Signed-off-by: Chris Evich <cevich@redhat.com>
2023-04-20 15:54:33 -04:00
8a3265f656 [CI:BUILD] Cirrus: remove copr rpm build task
Packit copr build tasks take care of this already so this can be safely
removed.

[NO NEW TESTS NEEDED]

Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
2023-04-20 13:53:22 -04:00
03a7c6a916 Cirrus: Drop benchmarks artifacts
These aren't being generated anymore.

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-04-20 11:33:15 -04:00
25bc7d161e chore(deps): update dependency containers/automation_images to v20230405
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-10 17:35:57 +00:00
56e7b511e1 Cirrus: Enable labeling of EC2 VMs
In GCP, user specified VM names are required upon creation.  Cirrus-CI
generates helpful names containing the task-ID.  Unfortunately in EC2
the VM ID's are auto-generated, and special permissions are required
to allow secondary setting of a `Name` tag.  Since this permission has
been granted, enable the `experimental` flag on EC2 tasks so that cirrus
can update VM name-tags.  This is especially useful in troubleshooting
orphaned VMs.

Ref:
https://github.com/containers/podman/issues/18065#issuecomment-1497779159

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-04-05 15:03:21 -04:00
74f9fd8e6c Cirrus: Fix aarch64 clone_script 404 errors
Fixes: https://github.com/containers/podman/issues/18040

If the `build_aarch64` task happens to fail for any reason, it will
cause the `curl` command in the `clone_script` for the aarch64 system
test tasks to throw a 404.  This is because the
`local_system_test_aarch64_task` depends on `build` not `build_aarch64`.
As discovered in another issue long ago, the Cirrus API depends on doing
some dependency-resolution magic to function properly.  Fix this by
correcting the dependencies.

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-04-05 12:16:06 -04:00
3820554aa9 Merge pull request #17735 from cevich/bench_stuff
Cirrus: Store podman machine benchmark data
2023-03-21 14:05:54 -04: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
b3035b9d66 Update Cirrus display names, and fix get-ci-vm script
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
cc7a1e6148 CI: Switch to c20230307t192532z-f37f36d12 images
They include Fedora package passt-0^20230227.gc538ee8-1.fc37 and
passt-0.0~git20230227.c538ee8-1 for Debian, so that we can re-enable
the "Local Forwarder, IPv4" test for pasta(1).

Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
2023-03-08 13:42:34 +01:00
799c201776 Cirrus: Run system & integration tests in parallel
Given that flakes inevitably occur as testing grows wider, position the
system tests in parallel with the integration tests as much as possible.
The thinking here is, flaking sooner is better than later.  This is
because it provides an earlier opportunity for developers to re-run
tasks.

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-03-07 14:29:31 -05:00
e804ddc5ac CI: Switch to c20230223t153813z-f37f36d12 images
They include passt-0^20230222.g4ddbcb9-1.fc37, so that we can
re-enable pasta tests, and passt-0.0~git20230216.4663ccc-1, so that
we can run them on Debian Sid.

Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
2023-02-28 11:37:59 +01:00
5a08ddaecc CI: new rootless buildah-bud tests (cron only)
Run rootless bud tests as part of the nightly treadmill job.

Reason: #17480 could have been caught before release.

Also: refactored bot this and bud_test_task (the task which
I copypasted to form this one) to use *stdenvars; thanks
@cevich for catching that.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-02-23 10:27:01 -07: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
975b096bc9 Revert "CI: Temporarily disable all AWS EC2-based tasks"
This reverts commit 7f8bc6f510979cc3787cd57fb8b06b86efd1833c.

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-02-17 10:07:13 -05:00
7f8bc6f510 CI: Temporarily disable all AWS EC2-based tasks
An ongoing issue with uploading artifacts is hindering development
progress.  Temporarily disable all aflicted tasks until the problem is
resolved.  Typical error message:

```
Uploading 1 artifacts for
Failed to upload artifacts: Put
...cut...
tls: server selected unsupported protocol version 303
Re-trying to artifacts upload...
```

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-02-16 16:44:41 -05:00
cf7afed055 Cirrus: Use versionable IMAGE_SUFFIX
Image content hasn't changed much, the biggest thing here is the
$IMAGE_SUFFIX value. This new schema is also fully manageable by
renovate. Allowing a tag-push to c/automation_images to create image
update PRs in all repos automatically.

ref: https://github.com/containers/automation_images/pull/247

Also, cleanup a few comments and remove a disused testing task.

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-02-01 11:34:18 -05:00
0ffce81810 Bump cirrus image with easier dependency management
- for cni tests remove netavark and aardvark only if installed
- install ginkgo in envs wherever needed

Related:
https://github.com/containers/automation_images/pull/177
https://github.com/containers/automation_images/issues/159
https://github.com/containers/automation_images/issues/161

Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>

Update .cirrus.yml

Co-authored-by: Chris Evich <1183438+cevich@users.noreply.github.com>
Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
2023-01-26 18:40:14 +05:30
7689e26c79 Merge pull request #16525 from Luap99/CI-update-image
update CI images to include pasta
2023-01-19 11:30:46 -05:00
5ad72a2349 update CI images to include pasta
Images were build here: https://github.com/containers/automation_images/pull/249

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-01-19 15:43:40 +01:00
07d297ca3d Cirrus: preserve podman-server logs
Output from podman system service, on system tests, is
being saved... it just hasn't been collected as an artifact.
Start collecting it. And, remove obsolete-unused-misleading
code that made me think it _was_ being collected.

Also: log system-service output for bud tests, and set
log-level to info per suggestion from @Luap99

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-01-19 06:27:43 -07:00
0bd51f6c87 Reworks Windows smoke test to tunnel through interactive session.
The latest Windows image from containers/automation_image@327d8799 auto-creates
an interactive session through winlogon autologon on boot. Additionally it
includes the PsTools psexec command on the system.

This change utilizes both aspects to launch the verification portion of the
smoke task under the interactive session, away from the session 0 execution
environment that the Cirrus agent runs in.

Since creating a new process under the interactive session requires a new token,
and by extension a clear text password, a new crypto random password is
generated to replace the ec2 boot generated one.

These changes allow WSL to once again function after its move to a store based
delivery stream (which is incompatible with session 0 execution).

Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
2023-01-18 11:23:43 -06:00
daf747f169 Cirrus: Run machine tests on PR merge
Prior to this commit, the podman-machine tests only ran for PRs.
However, now that these tasks are also being used to capture a uniform
set of performance benchmarks, they should probably run on branches as
well.  This also fixes a stream of branch-CI run failures due to the
artifacts-task failing to download/archive (missing) benchmark data.

Signed-off-by: Chris Evich <cevich@redhat.com>
2023-01-13 15:13:39 -05:00
1c8b40d097 Merge pull request #16449 from cevich/localbenchmarks
Cirrus: Collect benchmarks on machine instances
2023-01-04 07:31:09 -05:00
b3c7c18729 Docs: Add dedicated DOWNLOAD doc w/ links to bins
Signed-off-by: Chris Evich <cevich@redhat.com>
2022-12-12 13:59:50 -05:00
7c6873b23d Cirrus: Collect benchmarks on machine instances
The hardware used for podman-machine testing is fairly
stable/predictable because it's bare-metal.  This is a nearly ideal
environment for collection of benchmarking data.  Arrange for that to
happen, and the resulting data to be collected.

Also keep track of the benchmark-basis details in a machine-readable
`env` file along side the raw and parsed benchmarks.

Signed-off-by: Chris Evich <cevich@redhat.com>
2022-12-09 11:16:28 -05:00
eaab4b99a4 Add a FreeBSD cross build to the cirrus alt build task
This just verifies that a non-cgo podman binary can build for FreeBSD.

[NO NEW TESTS NEEDED]

Signed-off-by: Doug Rabson <dfr@rabson.org>
2022-12-03 13:58:19 +00:00
98a1b551fe Build cross-compilation fixes
Signed-off-by: Arthur Sengileyev <arthur.sengileyev@gmail.com>
2022-12-02 19:22:53 +02:00
1c1a8d33f6 [CI:DOCS] Skip windows-smoke when not useful
It's important to actually perform a windows build for a `[CI:DOCS]` PR
since it verifies and includes a copy of the docs.  However, it's not
necessary to actually test if the installer functions or not. That task
should happen in other contexts.

Signed-off-by: Chris Evich <cevich@redhat.com>
2022-11-30 10:17:44 -05:00
a575111ad4 [CI:DOCS] Migrate OSX Cross to M1
Migrate our OSX Cross build to a M1 instance, since Cirrus is sunsetting Intel-based macOS instances.

Signed-off-by: Ashley Cui <acui@redhat.com>
2022-11-21 15:15:53 -05:00
34020b353a CI: Package versions: run in the 'main' step
...not as a separate post-main step. Reasons:

 1) If main test times out, Cirrus won't run subsequent steps
 2) It really belongs in the main log anyway, because when
    looking at test results, you want to have instant access
    to versions, you don't want to have to clickety-click
    ten steps.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-11-16 06:52:07 -07:00
442df29679 Cirrus: Synchronize windows image
It's important/useful to have all VM images built around the same time
as it prevents tooling/dependency divergence and therefore simpler
debugging.

Signed-off-by: Chris Evich <cevich@redhat.com>
2022-11-03 10:17:10 -04:00
d7e70c7489 CI: set and verify DESIRED_NETWORK (netavark, cni)
We have CI tests running in netavark mode when CNI is desired.
Add a new .cirrus.yml envariable, CI_DESIRED_NETWORK, which
we then force-check in e2e and system tests. Simple copy/paste
of #14912 (the RUNTIME check) with manual s/RUNTIME/NETWORK/
and other minor changes.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-11-03 04:40:42 -06:00
fd9de876f1 Cirrus: temp. disable all Ubuntu testing
Building Ubuntu VM images is temporarily broken due to dependency
problems on (missing) netavaro for the (required) podman package.

Signed-off-by: Chris Evich <cevich@redhat.com>
2022-11-02 13:39:21 -04:00
ecd1927b4c Cirrus: Update to F37beta
Signed-off-by: Chris Evich <cevich@redhat.com>
2022-11-02 13:38:28 -04:00