718 Commits

Author SHA1 Message Date
a581bbdb3d Merge pull request #23688 from containers/renovate/golangci-golangci-lint-1.x
[CI:DOCS] Update dependency golangci/golangci-lint to v1.60.2
2024-08-22 13:53:48 +00:00
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
13b31845c8 [CI:DOCS] Update dependency golangci/golangci-lint to v1.60.2
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-20 21:47:30 +00:00
145c7511aa CI: disable ginkgo flake retries
As discussed in Aug 13 Cabal, we are almost at a point where
e2e tests are reliably passing on the first try. Let's try to
keep things that way, and not hide future flakes.

Closes: #17967

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-08-19 06:48:15 -06:00
c17daf2b09 update golangci-lint to 1.60.1
Fixes new spotted issues around printf() formats and using os.Setenv()
in tests.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-08-19 11:41:28 +02:00
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
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
2015137eee Merge pull request #23367 from rhatdan/codespell
Run codespell on source
2024-07-23 23:11:32 +00:00
96771eec53 Fix outdated comment for the build step win-gvproxy
Signed-off-by: Arthur Sengileyev <arthur.sengileyev@gmail.com>
2024-07-23 17:18:29 +03:00
7768cf235e Run codespell on source
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2024-07-23 07:28:23 -04:00
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
7ff4bbae26 Fix missing Makefile target dependency
This was likely hidden by the CI system.  Fix it.

Signed-off-by: Chris Evich <cevich@redhat.com>
2024-06-25 14:12:55 -04:00
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
00bcd9aa81 Merge pull request #22733 from nalind/system-check
Add `podman system check`
2024-06-13 10:35:56 +00:00
fa4f11facc update golangci-lint to v1.59.1
Includes fixes for new lint warnings from unparam and usestdlibvars.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-06-10 14:57:45 +02:00
80ed85dc17 run bats -T, to profile timing hogs
Signed-off-by: Ed Santiago <santiago@redhat.com>
Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-06-04 16:24:01 +02:00
2e70d4201f System tests: add podman system check tests
Testing `podman system check` requires that we have a way to
intentionally introduce storage corruptions.  Add a hidden `podman
testing` command that provides the necessary internal logic in
subcommands.  Stub out the tunnel implementation for now.

Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
2024-06-04 10:00:37 -04:00
2b43f62233 update golangci-lint to v1.59.0
Remove deactivated linters from the config as they will be removed in
the future and thorw warnings, all of them were disabled already anyway
so this is no functional change.
Second, fix one new lint warning for fmt.Scanln() error checking.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-05-27 11:19:03 +02:00
fa05adba67 Merge pull request #22750 from containers/renovate/golangci-golangci-lint-1.x
[CI:DOCS] Update dependency golangci/golangci-lint to v1.58.2
2024-05-22 12:57:13 +00:00
d9d0840a4d [CI:DOCS] Update dependency golangci/golangci-lint to v1.58.2
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-19 19:56:20 +00:00
63df724a40 add podman-clean-transient.service service to rootless
Signed-off-by: jkwiatko <jkwiatkoski@protonmail.com>
2024-05-19 15:43:02 -04:00
f03dc68f00 Merge pull request #22654 from ashley-cui/val
[CI:DOCS] Improvements to make validatepr
2024-05-13 20:36:22 +00:00
aff18ba393 Merge pull request #22388 from xduugu/podman-remote-static-goos
Makefile: do not hardcode `GOOS` in `podman-remote-static` target
2024-05-13 19:46:45 +00:00
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
dfbb6ea9ff [CI:DOCS] Update dependency golangci/golangci-lint to v1.58.1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-08 21:30:45 +00:00
6bdebea8ae update golangci-lint to 1.58
disable linters:
- mnd (magic number checker): it seems to complain about almost
  anything, while there might be a few valid findings most of them are
  useless
- canonicalheader: HTTP header syntax, most of the header are given by
  docker and are stable so we cannot change them anyway
- execinquery: it has been deprecated

goerr113 was renamed to err113

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-05-08 12:55:23 +02:00
c94a720bb3 Merge pull request #22494 from baude/validateimage
Use custom image for make validatepr
2024-04-26 15:03:49 +00:00
ca23774b5b Use custom image for make validatepr
The fedora image reviewers wanted to use for make validatepr is not
being being built as a multiarch image.  Use quay.io/libpod/validatepr
instead.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2024-04-26 07:53:16 -05:00
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
5040c6e390 Makefile: remove useless HACK variable in e2e test
This doesn't do anything and I was unable to find anything in the git
history when or why it was added. The HACK var is just adding another
directory to the ginkgo argument list. As the only arg used was the
"./hack" dir which does not contain any go files it does nothing
besides confusing me about its purpose.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-04-26 14:36:20 +02:00
e8a9c58125 Update Makefile to Go 1.22 for in-container
This unbreaks make vendor-in-container now that we have the
`toolchain` line in go.mod.

Signed-off-by: Matt Heon <mheon@redhat.com>
2024-04-25 12:12:48 -04:00
714920512e Makefile: do not hardcode GOOS in podman-remote-static target
Signed-off-by: Cedric Staniewski <cedric@gmx.ca>
2024-04-16 00:28:29 +02:00
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
49729c82a9 Update go-swagger version
Signed-off-by: Jhon Honce <jhonce@redhat.com>
2024-04-11 10:48:10 -07:00
2388b4571b Merge pull request #22331 from edsantiago/tools-ginkgo-update
vendor ginkgo 2.17.1 into test/tools
2024-04-11 14:05:03 +00:00
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
67c6d7ec80 vendor ginkgo 2.17.1 into test/tools
...to match the version in root dir, to get rid of the mismatch
warning on every ginkgo run.

The last bump was done by renovatebot; I don't know why bot didn't
do it this time.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-04-10 15:18:42 -06:00
b9a8a2c61c Makefile: fix annoying errors in docs generation
Currently when we run make docs we will see 100+ lines of
`grep: docs/build/man/links: Is a directory` printed.
This makes no sense as we should only try to validate the man page.

The manpage target is structured in a way that it runs the generation
for each file individually. As such the current way of grep'ing the
entire directory for each page is wrong. It should only validate the on
page that was created by the command above.

To fix this first define a OUTFILE var for the target to not have to
call the substitution every time we use the path and then only grep this
one file and not everything in the dir.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-04-08 14:13:17 +02:00
ccb71f9ffa [CI:DOCS] Update dependency golangci/golangci-lint to v1.57.2
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-03 15:34:21 +00:00
549dbf8327 [CI:DOCS] build deps: make-validate needs docs
The man-page-check target requires up-to-date man pages.

Closes: #22025

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-04-03 08:26:17 -06:00
1a99d87746 Inject additional build tags from the environment
This allows distros to easily add buildtags without patching the Makefile or
duplicating it in their build recipes

[NO NEW TESTS NEEDED]

Signed-off-by: Dan Čermák <dcermak@suse.com>
2024-04-02 14:48:52 +02:00
c03256e23c Add LoongArch support for libpod
Change Makefile.

[NO NEW TESTS NEEDED]

Signed-off-by: JiaLing Zhang <zhangjialing@loongson.cn>
2024-03-21 15:56:25 +08:00
5e017a87a0 [CI:DOCS] Update dependency golangci/golangci-lint to v1.57.1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-20 21:08:23 +00:00
c66400f624 [CI:DOCS] Update dependency golangci/golangci-lint to v1.57.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-20 15:54:55 +00:00
7711833827 Makefile: add target podman-remote-static
This allows to build a static `podman-remote` binary for the host architecture.

Signed-off-by: Cedric Staniewski <cedric@gmx.ca>
2024-03-16 17:04:35 +01:00
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
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
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
02403c2e6d Makefile: podman should have correct selinux label
pasta only works when we run as container_runtime_exec_t, now that pasta
is the default this means that the current binary will not work when
doing local dev without manually fixing the label.

There are also other parts where the correct label is important. So as a
simple fix always set the proper label in the bin/podman target.
This also means we can drop this line from the hack/bats script.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-03-05 11:08:23 +01:00
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