Commit Graph

1275 Commits

Author SHA1 Message Date
Ed Santiago 359092e463 Bump VMs. ShellCheck is now built-in
Minor bump. Fedora VMs now include ShellCheck, so we can
remove the 'dnf install' at CI run time.

Also, FWIW, Debian *vark are now at 1.12 (from 1.9)

VMs built in https://github.com/containers/automation_images/pull/385

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-09-09 06:16:20 -06:00
Paul Holzinger e598bcafb8
cirrus: prebuild use f40 for extra tests
This check has a condition on the distro name to only run once, however
the prior fedora version doesn't have to exists necessarily as we might
have to drop support there due the outdated golang version.
The current fedora version should alway exists so this seems safer.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-09-03 15:13:42 +02:00
Paul Holzinger 6a0ab6f7bc
cirrus: remove _bail_if_test_can_be_skipped
Since commit 55ad0d6e0e we do the conditions in the cirrus.yml directly
so there is no longer any need for this.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-08-29 18:59:47 +02:00
Paul Holzinger d5c5261e6f
cirrus: move renovate check into validate
The renovate config is used for the renovate bot, validating this in the
prior fedora prebuild setp is just confusing and hidden.

The problem is this image is very big so it is slow to download/extract.
To speed things up given it is only a single file we check the diff if
we even changed it.

Now one could argue this should be part of the validate Makefile target
but I given the size I do not want this run by default and I am not sure
if we should do the diff check in the Makefile.

Lastly remove -it, these is meant for interactive use and throws a
warning here because we have no actual tty attached.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-08-29 18:59:47 +02:00
Paul Holzinger ac18b1a0af
cirrus: remove 3rd party connectivity check
This doesn't help us at all, first the list is outdated. AFAICT we no
longer connect to docker.io, registry.fedoraproject.org or
podman.cachix.org (seems to be a cache site for nix.dev?) anywhere in
our tests.

Second a simple port check is not helpful, in the most cases the
CDN's and or load balancer accept connections but return internal server
errors when the registy goes down.

This is very similar to commit 5b6de98ee8.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-08-29 18:59:46 +02:00
Paul Holzinger 34a7d8dd10
cirrus: remove cross jobs for aarch64 and x86_64
We do build and test aarch64 and x86_64 natively so the cross job
doesn't seem to add value.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-08-29 18:59:46 +02:00
Christophe Fergeau 5f57f4ea22
build: Update gvisor-tap-vsock to 0.7.5
This should fix the regression reported in
https://github.com/containers/podman/issues/23616

Signed-off-by: Christophe Fergeau <cfergeau@redhat.com>
2024-08-26 13:19:50 +02:00
Alexander Larsson 17193af962 CI: On vX.Y-rhel branches, ensure that some downstream Jira issue is linked
In the RHEL specific branches we want to ensure that all MRs link to
at least one downstream Jira ticket. To do this we add a new test in
validate-source similar to the existing pr-should-include-tests. This
test only runs on actual pull requests.

The syntax for linking to a Jira is "Fixes " or "Fixes: ", followed by
one jira links, like so:

```
Fixes https://issues.redhat.com/browse/RHEL-50506
Fixes: https://issues.redhat.com/browse/RHEL-50506
```

Note: This is the same syntax as for a regular github issue reference.

Signed-off-by: Alexander Larsson <alexl@redhat.com>
2024-08-22 11:53:25 +02:00
Ed Santiago 5b6de98ee8 CI: remove build-time quay check
CI will fail if quay is down, but a build-time check does not
help us in any way. It just introduces another pain point
where we have to hit the Rerun button.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-08-14 08:17:45 -06:00
openshift-merge-bot[bot] c3111c24c1
Merge pull request #23593 from cevich/fix_validate_renovate
[CI:ALL] Fix and validate renovate config
2024-08-12 19:08:03 +00:00
openshift-merge-bot[bot] bd53a11630
Merge pull request #23225 from edsantiago/no-more-ci-docs
pr-should-include-tests: no more CI:DOCS override
2024-08-12 18:46:02 +00:00
Chris Evich 8f191618e4
Validate renovate config in every PR
Signed-off-by: Chris Evich <cevich@redhat.com>
2024-08-12 14:10:28 -04:00
Chris Evich dcdb5408de
De-duplicate docker-py testing
Previously there were two CI tasks that ended up both testing docker-py
compatibility.  Remove the duplicate from the `localapiv2-python` make
target, and symlink the identical requirements file.

Signed-off-by: Chris Evich <cevich@redhat.com>
2024-08-09 10:13:02 -04:00
Chris Evich bf091abdc5
Fix not testing registry.conf updates
Previously, if anyone touched these files no extra testing would
trigger.  However, basically all testing depends on them.  Update the
condition and test that verifies it.

Signed-off-by: Chris Evich <cevich@redhat.com>
2024-08-08 10:40:22 -04:00
Nicola Sella f041d059b5 Add passwd validate and generate steps
Add generate helper function.
Also, add a troubleshooting try/catch block in case we get more flakes
during Set-LocalUser step in Windows powershell.

Resolves: https://github.com/containers/podman/issues/23468

Signed-off-by: Nicola Sella <nsella@redhat.com>
2024-08-08 11:50:17 +02:00
openshift-merge-bot[bot] 7c38ee7565
Merge pull request #23509 from l0rd/fix-23502
Change Windows installer MajorUpgrade Schedule
2024-08-06 00:08:10 +00:00
Mario Loriedo 01d739a65e Change Windows installer MajorUpgrade Schedule
Use Schedule "afterInstallExecute" (instead of the
default "afterInstallValidate") in the Windows
installer MajorUpgrade element. That avoid
overriding eventual users changes to the podman
machine configuration file created by the
installer.

Fixes #23502

Signed-off-by: Mario Loriedo <mario.loriedo@gmail.com>
2024-08-05 21:52:58 +02:00
Ed Santiago 87dad1caef CI: podman-machine: do not use cache registry
It's too difficult to keep the podman-machine image up-to-date.
And, we can't use the cache on Mac/Windows, so if quay is down
we're hosed no matter what.

Add a "nocache" mechanism to install_test_configs() and use that
in machine test setup.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-08-05 05:12:36 -06:00
Mario Loriedo e429160e5b Temporarly disable failing Windows Installer CI test
Signed-off-by: Mario Loriedo <mario.loriedo@gmail.com>
2024-08-05 11:51:46 +02:00
openshift-merge-bot[bot] 69a5b28e6e
Merge pull request #23455 from lsm5/main-5.3-bump
Version: bump to v5.3.0-dev
2024-08-03 02:20:30 +00:00
Chris Evich 029a9aa34e
Add libkrun Mac task
Signed-off-by: Chris Evich <cevich@redhat.com>
2024-08-01 15:01:45 -04:00
Lokesh Mandvekar fcf7cd7d5c
Version: bump to v5.3.0-dev
We have v5.2 branch now.

Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
2024-07-31 13:30:35 -04:00
Ed Santiago 7bb3b83c17
CI: enable root user namespaces
Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-07-27 23:23:29 +02:00
Christophe Fergeau 599c0d167c build: Update gvisor-tap-vsock to 0.7.4
This contains a fix for a gvproxy crash on macos on fast connections
with heavy network load.

This should fix https://github.com/containers/podman/issues/23114

Signed-off-by: Christophe Fergeau <cfergeau@redhat.com>
2024-07-24 16:21:00 +03:00
openshift-merge-bot[bot] 2015137eee
Merge pull request #23367 from rhatdan/codespell
Run codespell on source
2024-07-23 23:11:32 +00:00
openshift-merge-bot[bot] b005b13274
Merge pull request #23328 from l0rd/win-installer-update-bug
Fix windows installer deleting machine provider config file
2024-07-23 13:14:46 +00:00
Daniel J Walsh 7768cf235e
Run codespell on source
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2024-07-23 07:28:23 -04:00
Ed Santiago a05a9cae07 logformatter: tweaks to pass html tidy
Plus, I think my ampersand-quot change earlier this month
caused problems for firefox. We no longer need it (pull-option
does not need the funky double-quoted curly-brace string),
so, remove it.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-07-22 07:58:32 -06:00
Sergio Lopez 5a7199015a
Bump bundled krunkit to 0.1.2
Bump the bundled krunkit version from 0.1.1 to 0.1.2.

Fixes: #23194

Signed-off-by: Sergio Lopez <slp@redhat.com>
2024-07-19 13:35:49 +02:00
Mario Loriedo 2e4b640ad2 Fix windows installer deleting machine provider config file
Signed-off-by: Mario Loriedo <mario.loriedo@gmail.com>
2024-07-18 16:56:39 +02:00
Giuseppe Scrivano b1e535b911
contrib: use a distinct --pull-option= for each flag
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-07-12 12:51:39 +02:00
openshift-merge-bot[bot] 360c4f372d
Merge pull request #23234 from Luap99/test-nftables
test netavark nftables driver
2024-07-11 22:19:32 +00:00
openshift-merge-bot[bot] 58c8803a1e
Merge pull request #22726 from edsantiago/pull-from-local-registry
CI: Use local cache registry
2024-07-11 12:42:04 +00:00
Paul Holzinger 43f6173cc6
CI: test nftables driver on fedora
Make sure this passes podman CI before we push out a default change.

ref: https://fedoraproject.org/wiki/Changes/NetavarkNftablesDefault

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-07-11 14:08:27 +02:00
openshift-merge-bot[bot] e570aacc4e
Merge pull request #23212 from l0rd/vs-buildtools
Using Visual Studio BuildTools as a MinGW alternative
2024-07-11 11:25:03 +00:00
Ed Santiago 07b69943a4 CI: use local registry, part 3 of 3: for developers
New tool, get-local-registry-script, intended for developers
to get a local registry running in their environment. This is
not necessary for any tests, but may be desirable for performance
reasons and/or to recreate the CI environment.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-07-11 04:39:45 -06:00
Ed Santiago dd1bcabae9 CI: use local registry, part 2 of 3: fix tests
This commit gets tests working under the new local-registry system:

  * amend a few image names, mostly just sticking to a consistent
    list of those images in our registry cache. Mostly minor
    tag updates.

  * trickier: pull_test: change some error messages, and remove
    a test that's now a NOP. Basically, with a local (unprotected)
    registry we always get "404 manifest unknown"; with a real
    registry we'll get "403 I can't tell you".

  * trickiest: seccomp_test: build our own images at run time,
    with our desired labels. Until now we've been pulling
    prebuilt images, but those will not copy to the local
    cache registry. Something about v1? Anyhow, I gave up
    trying to cache them, and the workaround is straightforward.

Also took the liberty of strengthening a few error-message checks

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-07-11 04:39:45 -06:00
Ed Santiago 2e8c074234 CI: use local registry, part 1 of 3: setup
As of https://github.com/containers/automation_images/pull/357
our CI VMs include a local registry preloaded with all(*)
images used in tests.

 * where "all" means "most".

This commit installs a new registries.conf that redirects docker
and quay to the new local registry. The hope is that this will
reduce CI flakes.

Since tests change over time, and new tests may require new
images, this commit also adds a mechanism for pulling in
remote images at test run time. Obviously this negates
the purpose of the cache, since it introduces a flake
pain point. The idea is: DO NOT DO THIS UNLESS ABSOLUTELY
NECESSARY, and then, if we have to do this, hurry up and
spin new CI VMs that include the new image(s).

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-07-11 04:39:45 -06:00
Ed Santiago d4c0e7ecbd CI: test composefs on rawhide
Run root e2e & system tests using composefs on rawhide.

Write magic settings to storage.conf. That part is easy.

e2e tests, however, ignore storage.conf. They require everything
to be specified on the command line. And "everything", in the
case of composefs, includes a long complicated --pull-options
string which in turn requires containers-storage PR 1966
which, as of this writing, is finally vendored into podman.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-07-10 14:51:58 -06:00
Chris Evich 1dd8a35b2f
Drop minikube CI test
This test flakes frequently and its status is completely ignored in CI.
At the time of this commit, nobody has stepped up to debug or fix it.
Drop the test.

Signed-off-by: Chris Evich <cevich@redhat.com>
2024-07-09 11:30:00 -04:00
Paul Holzinger 4b7aaafb2d
cirrus: check for header files in source code check
When we check if source code was changed also include header files.
There is only one header file currently but that can change and it may
be possible that changes in this file can break things so make sure it
is considered source code so that all tests are triggered.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-07-09 13:34:40 +02:00
Ed Santiago 5e9ab00063 pr-should-include-tests: no more CI:DOCS override
CI:DOCS is no more.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-07-08 15:46:56 -06:00
Mario Loriedo 81250cc5a9 Visual Studio BuildTools as a MinGW alternative
Building the MSI hook on Windows
(`contrib/win-installer/podman-msihooks/check.c`)
currently requires MinGW. This commit updates the build
script so that, when MinGW is absent but the C compiler
included in Visual Studio BuildTools is installed, the
latter is used to build the MSI hook.

Other than that, `winmake.ps1` has a new `installertest`
target to run the Windows installer tests that are
currently verified by Cirrus CI.

Signed-off-by: Mario Loriedo <mario.loriedo@gmail.com>
2024-07-08 17:18:15 +02:00
Paul Holzinger 049942db04
cirrus: add missing test/tools to danger files
This directory contains important tools such as ginkgo as such updates
there should run through all testing and not skip anything.

Technically we do not need to run system tests as it doesn't use any
tool from there but that
a) might change in the future and
b) would make the only_if rules much more complicated if we try to
   exclude it and
c) updates in test/tools are rare and/or automated so it does not cause
   inconveniences to run all anyway

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-07-08 10:58:19 +02:00
Lokesh Mandvekar e2ff5d4e5d
Windows Installer: switch to wix5
The chocolatey tool that was fetching us wix v3 can no longer be used to
fetch wix v4+ so we had to switch to dotnet to fetch the latest wix.

This commit builds the installer with wix v5.
wix v5 is installed via the `dotnet` tool in the windows image itself
at https://github.com/containers/automation_images/pull/354.

Going forward, the `dotnet` tool will also be used to build the installer.

In the process, the wix v3 files were converted to wix v4+ using `wix
convert` followed by manual modifications along with switch to wixproj
builds with dotnet.

The GitHub Action to upload windows installer now builds the installer
using winmake.ps1.

Contributions from Mario Loriedo:
- bundle setup update to wix5
- updates to build and release process scripts
Ref: https://github.com/lsm5/podman/pull/3

- small fixes to windows installer theme
Ref: https://github.com/lsm5/podman/pull/4

- Better win-installer sidebar logo
Ref: https://github.com/lsm5/podman/pull/5

Resolves: RUN-2055

Co-authored-by: Mario Loriedo <mario.loriedo@gmail.com>
Signed-off-by: Lokesh Mandvekar <lsm5@redhat.com>
2024-07-05 15:28:19 -04:00
openshift-merge-bot[bot] 0358325f9b
Merge pull request #23174 from Luap99/cirrus-skips
cirrus.yml: automatic skips based on source
2024-07-04 17:26:00 +00:00
Paul Holzinger 55ad0d6e0e
cirrus.yml: automatic skips based on source
As we want to get rid of the special titles convert the existing skips
to the only_if condition, this makes it more readable as we do not need
to negate so much.

Then add similar conditions for all test tasks, this removes the need to
a special title such as CI:DOCS as the logic is smart enough to only
docs changes when no source code was changed.

Update the documentation for the new logic and no longer point
contributors to the CI:DOCS title as it is gone now.

There is a bunch of duplication in the rules as yaml doesn't allow us to
share only parts of a string. To prevent unwanted drift a test case in
contrib/cirrus/cirrus_yaml_test.py is added to ensure all conditions
follow the same base ruleset.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-07-04 11:32:36 +02:00
Paul Holzinger e810b340ef
CI: mount tmpfs for container storage
Try to speed up the CI tests by using tmpfs as container storage.
This is important for system tests, other tests setup their own --root
already on tmpfs so it should not effect them.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-07-01 12:45:03 +02:00
Ed Santiago c9e3458c99 CI: Build-Each-Commit test: run only on PRs
Followup to #23081, which broke this test on nightly cron.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-06-28 05:58:24 -06:00
openshift-merge-bot[bot] fda0f8123b
Merge pull request #23098 from Luap99/CI-bail
cirrus: remove redundant skip logic and lower int timeout
2024-06-26 18:38:06 +00:00
Chris Evich 6c75a10875
Run linting in parallel with building
Linting code changes with golangci-lint is a very slow and resource
intensive process.  However, it does not depend on compiling anything.
This means it may run in parallel with the build tasks for
a modest perceived runtime duration improvement.

Additionally, the former validation make targets that **do** require a
build execute faster than CI is able to provision a VM, simply tack them
onto the end of all build operations.

Signed-off-by: Chris Evich <cevich@redhat.com>
2024-06-25 14:27:56 -04:00
openshift-merge-bot[bot] 4220ee02f7
Merge pull request #23081 from edsantiago/logformatter-base-sha
CI: logformatter: link to correct PR base
2024-06-25 17:55:01 +00:00
Paul Holzinger 8f2d403cd1
cirrus: remove redundant skip logic
As of commit d9183f0587 we use the cirrus.yml skip logic to skip based
on source changes. As such the add hoc logic inside our test setup can
be removed. However as I did not yet implement the skip logic for all
tests task in cirrus.yml it must remain for the other tasks for now.
I plan to migrate the other in a week or two once we are confident that
the cirrus.yml logic works well for us.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-06-25 16:44:54 +02:00
Ed Santiago 1a6a200403 CI: logformatter: link to correct PR base
Two enormous misunderstandings:

  1) $CIRRUS_BASE_SHA is worthless. I thought it was, you know,
     the BASE SHA of the current commit, but (as best I can tell)
     it seems to be the SHA of the most recent commit on the
     destination branch. Cirrus docs are unhelpful. Anyhow,
     it's clearly not anything useful. Stop using it.

  2) $EPOCH_TEST_COMMIT is closer to what we want. It is
     defined in Makefile as the git merge-base. But for unknown
     reasons it was being clobbered in CI scripts, and it
     doesn't seem to work in all contexts, so, eliminate it
     from CI setup scripts. Leave it only in Makefile.

This leaves us with no option other than defining our own
merge-base variable, PR_BASE_SHA. Do so and pass it along
to rootless jobs.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-06-25 06:53:59 -06:00
openshift-merge-bot[bot] 0563fb4217
Merge pull request #22920 from cgwalters/virtiofsd-machine
machine/linux: Switch to virtiofs by default
2024-06-24 17:58:08 +00:00
Sergio Lopez 5815195528 macos-installer: bundle krunkit
Extend Makefile and package.sh to download, sign and bundle krunkit and
its dependencies into the package.

Signed-off-by: Sergio Lopez <slp@redhat.com>
2024-06-24 14:42:04 +02:00
Chris Evich d53fee511f
CI Cleanup: Remove cgroups v1 support
With (esp. Debian) CI VM images built by
https://github.com/containers/automation_images/ pull/338 CI no-longer
tests with runc nor cgroups v1.  Add logic to fail under these
conditions.  Prune back high-level YAML/script envars and logic formerly
required to support these things.

Signed-off-by: Chris Evich <cevich@redhat.com>
2024-06-21 10:08:39 -04:00
Paul Holzinger f134ab77bc
cirrus.yml: add CI:ALL mode to force all tests
Now that we have source based skips there might be a case where we have
to run all tests. One option is to simply change a line in one of the
danger files but having something that can be set as title might be
easier for users.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-06-20 19:10:02 +02:00
Paul Holzinger d9183f0587
cirrus.yml: implement skips based on source changes
We do not have to test everything for each PR, we can know based on the
source if we changed (i.e. machine code) and only run the tests then.

This implements it as skip conditions, due to the nature of yaml files
we unfortunately cannot deduplicate everything, i.e. the is PR check and
danger files apply to everything but as skip is only a single yaml
string we cannot deduplicate parts of that string. If anyone knows a way
to achieve this I like to hear it.

For now I implemented this for int, system, bud and machine tests. Once
we are more comfortable with this I plan on adding it to other tests as
well.

This will replace the current _bail_if_test_can_be_skipped logic as it
covers more, marks tasks actually skipped in the github UI and works
even for the windows/macos machine tests.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-06-20 19:10:02 +02:00
Paul Holzinger 0eaec1a2e9
cirrus: check for system test leaks in nightly
The leak check is slower (over 5mins) so we do not wnat them on PR runs
to speed system tests up. However that opens the door for someone to add
a test which forgets to do the correct cleanup themselves. This might
not cause a fatal error right away and only later when new tests would
be added. To prevent this happening the nighlty run will check leaks so
that we can fix them quickly and not notice them months/years later when
a new test is added that might trip over it.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-06-18 11:06:52 +02:00
Paul Holzinger c20767120f
CI: do not install python packages at runtime
No idea why we need them, it passes without them so I just remove them.
Currently CI is broken as this install is failing on rawhide for some
reason. I don't know what changed there but this is working and unblocks
CI so I like to get this in.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-06-17 13:03:25 +02:00
Colin Walters bf541c6740 machine/linux: Support virtiofs mounts (retain 9p default)
I'm hitting a bug with 9p when trying to transfer large files.
In RHEL at least 9p isn't supported because it's known to have a
lot of design flaws; virtiofsd is the supported and recommended
way to share files between a host and guest.

Add a new hidden `PODMAN_MACHINE_VIRTFS` environment
variable  that can be set to `virtiofs` to switch to virtiofsd.

Signed-off-by: Colin Walters <walters@verbum.org>
2024-06-07 10:03:06 -04:00
Urvashi Mohnani e4123026b5 [CI:DOCS] Add contrib/podmanimage/stable path back in repo
The path mentioned above is linked in the sysadmin
article on running podman inside containers. The content
has since been moved and users are getting a 404 there now.
Add the path back with a readme pointing to the new location
of the content.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2024-05-31 10:38:34 -04:00
Mario Loriedo fb4ddf86cc Add Hyper-V option in windows installer
podman.msi GUI has a radio-button to select WSL or Hyper-V

The checkbox in podman.msi GUI allow the user to specify if
the machine provider installation (WSL or Hyper-V) should
be part of podman installation or not.

podman-setup.exe supports 2 new variables: MachineProvider
(valid values are `wsl` and `hyperv`) and HyperVCheckbox
(valid values are `0` and `1`)

Installation creates the configuration file
`99-podman-machine-provider.conf` under folder
`%APPDATA\containers\containers.conf.d` with the selected
machine provider

Cirrus CI `win_installer_task` tests the installation with
both `hyperv` and `wsl` and verifies the configuration.
Uninstallation is tested too.

Note that podman-setup.exe GUI doesn't allow to choose the
provider yet. See https://github.com/containers/podman/issues/22492

Signed-off-by: Mario Loriedo <mario.loriedo@gmail.com>
2024-05-29 12:09:37 +02:00
Chris Evich 74e8f98772
Mac PM test: Require pre-installed rosetta
Previously, the mac podman-machine tests installed rosetta before
executing any tests.  As a best-practice (and because the Macs in CI are
shared) tests should never permanently modify the system.  As of this
commit, the system setup script used for the CI Macs does the rosetta
installation.  Remove the test setup code that installed rosetta and
add a CI-level confirmation that it's been pre-installed.

Signed-off-by: Chris Evich <cevich@redhat.com>
2024-05-23 10:23:06 -04:00
openshift-merge-bot[bot] f03dc68f00
Merge pull request #22654 from ashley-cui/val
[CI:DOCS] Improvements to make validatepr
2024-05-13 20:36:22 +00:00
Paul Holzinger 5901bf52b9
CI tests: enforce TMPDIR on tmpfs
First, setup a custom TMPDIR to ensure we have no special assumptions
about hard coded paths. Second, make sure it is actually on a tmpfs so
we can catch regressions in the VM setup immediately.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-05-13 17:27:10 +02:00
Ashley Cui 279e2d0cb2 [CI:DOCS] Improvements to make validatepr
Small usability improvements for our containerized validate target.

- Responds to SIGINT
- Exits if build fails, only validate if builds succeed
- Warns about potential of insufficient memory
- Document `make validatepr`

Signed-off-by: Ashley Cui <acui@redhat.com>
2024-05-09 10:06:47 -04:00
openshift-merge-bot[bot] cdb354fc98
Merge pull request #22623 from cevich/cleanup_passthrough_envars
[CI:DOCS] Clarify passthrough_envars() comments
2024-05-08 09:05:07 +00:00
Chris Evich b520e909e0
CI Docs: Clarify passthrough_envars() comments
A long time ago, `passthrough_envars()` was defined in `lib.sh`.  It has
since been moved, but the related comments were never updated.  Update
the env. var. comments pointing future maintainers to the function that
relies on them.  Otherwise a simple search w/in this repo. won't turn up
anything.

Signed-off-by: Chris Evich <cevich@redhat.com>
2024-05-06 13:26:55 -04:00
Ed Santiago 87747ca820 Skip machine tests if they don't need to be run
Followup to #13936 : add an exclusion to localmachine tests
so we can avoid running those on test- or doc-only PRs.
Reason: #22551, the machine-start-timeout flake, is causing
hours of wasted time.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-05-06 09:55:16 -06:00
Ed Santiago eaf60c7fe7 e2e tests: use /var/tmp, not $TMPDIR, as workdirs
TMPDIR is typically /tmp which is typically(*) a tmpfs.

This PR ignores $TMPDIR when $CI is defined, forcing all
e2e tests to set up one central working directory in /var/tmp
instead.

Also, lots of cleanup.

 (*) For many years, up to and still including the time of
     this PR, /tmp on Fedora CI VMs is actually NOT tmpfs,
     it is just / (root). This is nonstandard and undesirable.
     Efforts are underway to remove this special case.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-04-26 14:29:56 -06:00
Paul Holzinger d1bfdc7900
e2e and bindings tests: fix $PATH setup
Both tests need the podman-registry script in $PATH, this never worked
locally as only the cirrus specific CI setup scripts configured this.

To make it work correctly locally add the hack dir to $PATH for these
Makefile targets.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-04-26 14:37:27 +02:00
Paul Holzinger 2c61ee9a31
CI: remove compose v1 tests
compose v1 has been deprecated for some time now, since July 2023 it no
longer receives any updates[1]. As such testing it on every PR is
pointless, it also does not provide any more coverage then compose v2.
At least I never saw only compose v1 test fails (except for flakes) so
it doesn't help us to catch regressions.
We tried to remove it before but decided against it at that time[2].

[1] https://docs.docker.com/compose/migrate/
[2] https://github.com/containers/podman/issues/18688

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-04-18 14:48:27 +02:00
Paul Holzinger 5e9725983d
install swagger from source
First of all this removes the need for a network connection, second
renovate can update the version as it is tracked in go.mod.

However the real important part is that the binary downloads are
broken[1]. For some reason the swagger created with them does not
include all the type information for the examples. However when building
from source the same thing works fine.

[1] https://github.com/go-swagger/go-swagger/issues/2842

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-04-12 15:26:34 +02:00
Brent Baude e773ed42b3 [CI:DOCS]Initial PR validation
This PR is only a first step towards being able to validate developer
code locally prior to pushing a PR and using CI.  Right now, we have a
prepared image in a temporary spot (will change when done).  That image
can be used to exercise various podman builds, make validate, and DCO
check.

The idea here is we have a make target that spins a podman container (or
machine) and then execute a small script to perform the actual builds.
Note, these builds are to verify code, not make production binaries so
corners are cut.  As of now, we choose to not build cross-arch binaries
because most of our problems thus far have been operating system builds
and not arch.

Of course this can be expanded in the future.  This is just step one to
start getting some of it in place.  The rest of the work is tracked in
JIRA under two cards.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2024-04-11 07:49:03 -05:00
Ed Santiago ff133a544d Windows: clean up temporary perl install
Followup to #21991. Strawberry Perl is now installed by default
in CI VMs[1], so we no longer need the temporary install-perl code.

 [1] https://github.com/containers/automation_images/pull/337

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-04-03 08:53:55 -06:00
Mario Loriedo c0e32e93c0 Use logformatter for podman_machine_windows_task
https://github.com/containers/podman/issues/21760

Signed-off-by: Mario Loriedo <mario.loriedo@gmail.com>
2024-03-27 12:59:49 +01:00
Ed Santiago f16ab115ed logformatter: handle Windows logs
C-colon and backslashes and ^Ms oh my

Tested on sample failure and success logs, seems to work.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-03-18 15:28:24 -06:00
Paul Holzinger dbf38779bd
Makefile: drop tests-included from validate target
make validate should work locally, this check makes no sense in a local
context as it checks for a github label.
To fix this remove this check from the validate target and only use it
as part of the CI validate run.

While at it remove old dnf install step, the issue has been closed for a
long time and it should already be part of our base images.

Fixes #22031

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-03-13 18:17:43 +01:00
openshift-merge-bot[bot] cc495a9fac
Merge pull request #22014 from baude/norqdpolicy
do not require policy.json
2024-03-13 15:21:12 +00:00
Brent Baude d7bc7b7b41 do not require policy.json
we are having second thoughts about *requiring* a policy.json on podman
machine hosts.  we are concerned that we need to work out some more use
cases to be sure we do not make choices now that limit us in the near
term future. for example, should the policy files be the same for
container images and machine images? And should one live on the host
machine and the other live in the machine?

therefore, if a policy.json *is* present in the correct location, we will use and honor it; however, if it does not, we will allow the machine image to be pulled without a policy.

Signed-off-by: Brent Baude <baude@redhat.com>
Co-authored-by: Paul Holzinger <45212748+Luap99@users.noreply.github.com>
Signed-off-by: Brent Baude <bbaude@redhat.com>
2024-03-13 09:07:51 -05:00
Mario Loriedo abaa179aa0 Add target win-gvproxy in winmake.ps1
For consistency with linux/osx makefile
I have added the win-gvproxy target as
an alias of win-sshproxy

[NO NEW TESTS NEEDED]

Signed-off-by: Mario Loriedo <mario.loriedo@gmail.com>
2024-03-13 00:45:10 +01:00
openshift-merge-bot[bot] 38e22d443c
Merge pull request #21950 from cevich/move_podmanimage
[CI:DOCS] Migrate podman container image
2024-03-11 17:28:28 +00:00
openshift-merge-bot[bot] 45068124f0
Merge pull request #21985 from n1hility/fin-policy-json
Complete policy.json inclusion (Also add to win installer)
2024-03-07 21:13:38 +00:00
Jason T. Greene d54a373996 Complete policy.json inclusion
- Sets default search location to always be the peer directory
  + make podman-remote now creates binaries that work the same as release zips
- Updates release zip to match expected search location
- Updates win installer to include the file if present in the repo cross-build
  archive

[NO NEW TESTS NEEDED]

Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
2024-03-07 14:05:22 -06:00
Ashley Cui 75fa38d52e [CI:BUILD] Build universal Podman binary for Mac installer
Build universal Podman binary and installer for Mac. Update GitHub action to build it too.

Signed-off-by: Ashley Cui <acui@redhat.com>
2024-03-07 09:09:32 -05:00
Chris Evich d6d2601742
[CI:DOCS] Migrate podman container image
Moved to: https://github.com/containers/image_build

Signed-off-by: Chris Evich <cevich@redhat.com>
2024-03-05 16:11:02 -05:00
Ed Santiago 530782e11d logformatter: fixes for Macintosh
Lots of small special-case tweaks to logformatter because Macs
have to be different.

Also fix:
 - Wrong slash in printf-newline, leading to gray [It] blocks
 - echo gitCommit, so we can link to sources
 - --image-path is deprecated

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-03-04 05:52:00 -07:00
Ed Santiago 99bb2bfce4 CI: must-add-tests check: use GH label, not text
Old way: edit commit message, add magic string, re-push

New way: repo maintainer adds a Github label to PR, hits Rerun

I've looked and looked for the history behind this script
and why I didn't do it this way in the first place. I've
concluded that I just never thought of it.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-03-01 05:32:06 -07:00
Ed Santiago 6957c78199 CI: run logformatter on mac
It works (verified in #17831). Imperfectly, because Macs don't
have a useful awk, so we can't get timestamps. I will, in time,
look into adding the timestamp functionality to logformatter
itself.

Also imperfect because it's not linkifying: source code paths
are dead text. I need to fix that, too, in logformatter, by
having it recognize /Users/Mac paths.

Imperfect as it may be, it was quick, and I think could provide
good bang for the buck in these Mac-intensive debugging days.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-02-28 20:14:05 -07:00
Brent Baude fd1d951262 Move ignition functions into Containerfiles
We used to use ignition to perform any customization required for podman
machine because our input was a generic FCOS image.  Now that we are
building our own images, some of this customization can be migrated to
the Containerfile itself and be less of a burden in our code at boot up.

At the time of this PR, the Containerfile can be found at
https://github.com/baude/podman-machine-images/tree/main.  It is only
present for a so-called daily image.  There is little liklihood that
this would the final location for the Containerfile so consider it a
working version only.

Split WSL and rest apart in the e2e tests so we no longer ppull the
generic FCOS image for testing.

Note: the change to the pull image name is so PRs are not immediately
broken that are already in the queue.

[NO NEW TESTS REQUIRED]

Signed-off-by: Brent Baude <bbaude@redhat.com>
2024-02-28 16:05:50 -06:00
openshift-merge-bot[bot] 4704418c13
Merge pull request #21841 from edsantiago/rawhide_rc6
new vms, with rc6 rawhide kernel
2024-02-27 19:40:56 +00:00
Christophe Fergeau 9f5c20f9bf
macos installer: Add vfkit entitlement
vfkit needs the com.apple.security.virtualization entitlement or it
wont' be able to start virtual machines:

Error: Error Domain=VZErrorDomain Code=2 Description="Invalid virtual machine configuration. The process doesn’t have the “com.apple.security.virtualization” entitlement." UserInfo={
    NSLocalizedFailure = "Invalid virtual machine configuration.";
    NSLocalizedFailureReason = "The process doesn\U2019t have the \U201ccom.apple.security.virtualization\U201d entitlement.";
}

This fixes https://github.com/containers/podman/issues/21842

Signed-off-by: Christophe Fergeau <cfergeau@redhat.com>
2024-02-27 17:47:49 +01:00
Christophe Fergeau 15734f8c5a
macos-installer: Remove hvf.entitlements
That's a left-over from 87947761ed

Signed-off-by: Christophe Fergeau <cfergeau@redhat.com>
2024-02-27 17:44:04 +01:00
Christophe Fergeau 74b87874b6
macos installer: Default to using ad-hoc signing
When there is no signing identity to pass to the macOS `codesign` tool,
we can use `-` instead as the identity to perform ad-hoc signing.

From `man codesign`:
> If identity is the single letter "-" (dash), ad-hoc signing is
> performed.  Ad-hoc signing does not use an identity at all

This makes it easier to test the sign() code-path in package.sh as
we'll run the same code regardless of `NO_CODESIGN` being set or not.

Signed-off-by: Christophe Fergeau <cfergeau@redhat.com>
2024-02-27 17:44:01 +01:00
Ed Santiago c2a2113bb6 new vms, with rc6 rawhide kernel
Source: https://github.com/containers/automation_images/pull/331#issuecomment-1966677347

Kludgy VM build, because rawhide rc6 kernel is still not stable.
I would like to merge this anyway, because the rawhide hang is
hurting us badly. (I am not guaranteeing that this fixes the hang).

Also: new Windows VM has WiX 3.14 (up from 3.11).

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-02-27 09:42:43 -07:00
Paul Holzinger 1e5b5a8892
macos installer: install default policy.json file
Include a default policy.json file in the macos package so users do not
have to add this manually.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-02-27 15:31:09 +01:00
openshift-merge-bot[bot] bb44510db6
Merge pull request #21639 from cevich/require_build
Rearrange CI tasks for safety + efficiency
2024-02-22 21:05:08 +00:00
Chris Evich c4e68bdae4
Cirrus: Reuse shared clone script on Mac
The `Makefile` makes assumptions about git repo. clone details.
Because fixing the `Makefile` would likely be problematic, fix
the clone operation used on the Mac so that it matches what's used
on Linux.

Also, simplify git repo clone operations.  At some point in the
distant past, a git identity was required for CI to function properly.
That has since changed, so remove the unnecessary complexities.

Signed-off-by: Chris Evich <cevich@redhat.com>
2024-02-21 15:20:16 -05:00