226 Commits

Author SHA1 Message Date
5bbbc9996f Merge pull request #5737 from cevich/add_f32
Cirrus: Add support for Fedora 32 beta
2020-04-22 07:37:14 -04:00
5c968b7693 Force integration tests to pass
Failing tests are now skipped and we should work from this.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-21 13:48:50 -05:00
d2d9722454 Cirrus: Add support for Fedora 32
Signed-off-by: Chris Evich <cevich@redhat.com>
2020-04-20 14:22:23 -04:00
e282c88d2c Cirrus: More Ubuntu 19 + Fedora 31
Signed-off-by: Chris Evich <cevich@redhat.com>
2020-04-20 14:22:23 -04:00
c2a1138aec enable integration testing
Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-17 18:57:40 -05:00
b6a264464f Enable some testing
Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-17 10:09:32 -05:00
241326a9a8 Podman V2 birth
remote podman v1 and replace with podman v2.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-16 15:53:58 -05:00
ffd2d78391 Merge pull request #5516 from cevich/remove_dupe_gate_cross
Cirrus: Remove darwin/windows builds in gate-job
2020-04-02 15:07:03 +02:00
0dfa163a64 Cirrus: Remove darwin/windows builds in gate-job
It's advisable to have the initial gating job execute as quickly as
possible, weeding out simple mistakes early on, when possible.  However,
over time it has bloated to duplicate some more specific testing which
occurs in other tasks.  In this specific case the
`special_testing_cross` task.  Remove these duplicate items from the gate
job to speed things up for everyone.

Signed-off-by: Chris Evich <cevich@redhat.com>
2020-03-30 17:08:48 -04:00
5884225cb0 Cirrus: Update VM Images
Fedora release 31 (Thirty One)
```
Kernel:  5.5.11-200.fc31.x86_64
Cgroups:  cgroup2fs
conmon-2.0.14-1.fc31-x86_64
containernetworking-plugins-0.8.5-1.fc31-x86_64
containers-common-0.1.41-1.fc31-x86_64
container-selinux-2.129.0-1.fc31-noarch
criu-3.13-5.fc31-x86_64
crun-0.13-1.fc31-x86_64
golang-1.13.6-1.fc31-x86_64
libseccomp-2.4.2-2.fc31-x86_64
package runc is not installed
podman-1.8.2-2.fc31-x86_64
skopeo-0.1.41-1.fc31-x86_64
slirp4netns-0.4.0-20.1.dev.gitbbd6f25.fc31-x86_64
```

Ubuntu 18.04.4 LTS
```
Kernel:  5.0.0-1031-gcp
Cgroups:  tmpfs
conmon-2.0.14~1-amd64
containernetworking-plugins-0.8.5~1-amd64
containers-common-0.1.41~1-all
cri-o-runc-1.0.0-3~dev2-amd64
criu-3.13-2ppa1.18.04-amd64
golang-2:1.14-1longsleep1+bionic-all
libseccomp2-2.4.1-0ubuntu0.18.04.2-amd64
podman-1.8.2~1-amd64
skopeo-0.1.41~1-amd64
slirp4netns-0.4.3~1-amd64
```

Signed-off-by: Chris Evich <cevich@redhat.com>
2020-03-30 17:07:33 -04:00
17ad800905 Merge pull request #5368 from cevich/opensuse_ubuntu_packages
Opensuse openbuild ubuntu + buildah packages
2020-03-28 10:50:10 +01:00
b743f60a4b Merge pull request #5479 from cevich/auto_release
Cirrus: Disable non-docs release processing
2020-03-23 14:36:30 +01:00
559deb84e7 Cirrus: Update VM images
Signed-off-by: Chris Evich <cevich@redhat.com>
2020-03-19 12:28:25 -04:00
c4300ac5a4 Cirrus-CI: Fix source path of vendor task
Signed-off-by: Chris Evich <cevich@redhat.com>
2020-03-19 12:28:25 -04:00
81005f463e New test: man page cross-ref against --help
New hack/xref-helpmsgs-manpages script, added to CI 'gate'
task, runs 'podman [subcommand] --help' and cross-references
against man pages in docs/source/markdown/podman*.1.md

See #5453 and #5460 for instances of the problems the
script has found.

The careful reader will find an alarming number of special-case
bypasses. These are a tradeoff I am making: to get perfect
coverage with no handwaving, it would be necessary to make
drastic changes to some man pages, and I believe those would
be counterproductive.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-03-18 11:03:26 -06:00
9215eb0331 Cirrus: Disable non-docs release processing
Detecting when it's time to upload a release inside Cirrus-CI is really
difficult for many automation and human reasons.  Disabling it for now
until a more robust solution can be implemented

Signed-off-by: Chris Evich <cevich@redhat.com>
2020-03-12 15:41:03 -04:00
2c85674773 build for amd64|arm|ppc64le
to protect against architecture specific build regressions, we cross compile for multiple architectures

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-10 13:57:53 -05:00
a61ff4972d Part 2: try to clean up the long image instance names
Let's try to shorten up fedora-31-libpod-123456789etc to
just fedora-31.

While we're at it, shorten the window/darwin names too

Many many thanks to @fkorotkov for the suggestion to use 'alias'

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-03-06 09:17:05 -07:00
68b0b20607 WIP: Try renaming long cirrus job names
Basically, add a 'name' tag (remote, local) to each incantation
of TEST_REMOTE_CLIENT: true/false

I have no idea if this will work or what results it'll produce.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-03-06 09:17:05 -07: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
04d9cee01a Cirrus: Update VM images
Main intended signifant change is forced-removal of crun from F30
and disabling updates-testing (only enabled on F31).

Signed-off-by: Chris Evich <cevich@redhat.com>
2020-02-28 10:59:58 -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
7e95e1e25c Cirrus: collect podman system info
Signed-off-by: Chris Evich <cevich@redhat.com>
2020-02-25 12:34:25 -05:00
eae42ab256 Cirrus: Temp. disable F31 p-in-p testing
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
ec82cd30b2 always run the docs task on post-merge
Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-02-24 13:25:46 -06:00
a64985c71b enable ci on go binding tests
Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-02-22 09:43:19 -06:00
86b5a89d1a Merge pull request #5068 from baude/newimagestest
replace prow images test
2020-02-11 17:33:35 +01:00
2800323e60 replace prow images test
this is a container-based approach to verifying we can build an rpm based on the contrib spec.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-02-10 18:44:20 -06:00
9e55bcc304 Cirrus: Never run prune on other branches
This is needed because the prune container image will be built from
other branches as they are made.  If the behavior of this or the imgts
image diverges from that of master, random VM images could be "cleaned"
unexpectedly.  By hard-coding this task to the master branch only,
it should never run anywhere else.

Signed-off-by: Chris Evich <cevich@redhat.com>
2020-02-06 13:47:58 -05:00
c0b14ee29a fix swagger docs and make sure docs validation runs
Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-02-05 14:16:25 -06:00
dbb9d098b5 Cirrus: Fix gate task + make lint|validate
A recent Makefile change (4ec893a748) removed a side-effect necessary
for 'make validation' to pass under automation.  Making things worse,
change 12bd7e927c was found upon investigation to always point at
the latest upstream HEAD.  However, this is rarely a fork-point for
pull-requests.  Further investigation showed the built-in Cirrus-CI,
golang-based git does not obtain sufficient data for the Makefile
command `git merge-base HEAD $${DEST_BRANCH:-master}` to function
properly (in the context of the gate container).

Fix this by customizing the clone operation and slightly adjust the
Makefile command to function as intended in the gate container.  Also
add checks to the validate and lint targets which validate the
variable EPOCH_TEST_COMMIT value is never an empty string or whitespace.

Signed-off-by: Chris Evich <cevich@redhat.com>
2020-02-03 16:23:46 -05:00
12bd7e927c Cirrus: Set EPOCH_TEST_COMMIT during gate task
For whatever reason, this required variable is not set when `make` is
doing validation within automation.  Fix this by establishing the
value based on data provided from the CI system.  Since this data
is specific to automation executing against a PR, limit this specific
job to not run during testing of branches (post-merge).  This is safe
since we can assume the PR would not have been merged, if the basics
checked during gating did not pass.

Signed-off-by: Chris Evich <cevich@redhat.com>
2020-01-29 15:48:35 -05:00
d4c2aaf38a Add service endpoint
add service endpoint for the new API.  Also supports the varlink
implementation.

Signed-off-by: baude <bbaude@redhat.com>

Refactor to allow developer more control of API server

* Add api.NewServerWithSettings() to create an API server with custom
  settings
* Add api.ListenUnix() to create a UDS net.Listener and setup UDS

Signed-off-by: Jhon Honce <jhonce@redhat.com>
Signed-off-by: baude <bbaude@redhat.com>

More service completion

Add podman service command that allows users to run either a RESTful or
varlink protocol API service.

Addition of docs and RESTful listening.

Signed-off-by: baude <bbaude@redhat.com>
Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-01-21 16:35:45 -06:00
ce16f264a2 Cirrus: Fix logic typo
Signed-off-by: Chris Evich <cevich@redhat.com>
2020-01-21 16:31:05 -05:00
fb8209ad78 Cirrus: No upload snap for docs job
Previously, the upload-snap job was running during post-merge
testing when the magic ci-docs string was present in the PR
description.  This fixes that and makes all the `only_if`'s
more consistent.

Signed-off-by: Chris Evich <cevich@redhat.com>
2020-01-21 15:00:58 -05: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
45a7e0146b Cirrus: remove workaround for cleaning /go/bin
Remove the temporary workaround for cleaning /go/bin in the gating task.
The workaround was added to make sure that we're always installing the
latest tools in `make install.tools`.  The gating image does not ship
with these pre-installed tools anymore which is now causing errors in
the gating task as the `rm` is missing the `--force` flag.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-01-16 12:08:58 +01:00
a6ea17455c [CI:DOCS]swagger cleanup and left-hand nav
add a static tags file so we can dictate the left-hand navigation. in
doing so we now override the tag in the swagger:operation. we now have
images and images (compat) as a way to differentiate.

Signed-off-by: baude <bbaude@redhat.com>
2020-01-15 14:22:25 -06:00
796ae87b1a Merge pull request #4850 from vrothberg/fix-linting
Fix linting
2020-01-13 21:03:21 +01: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
768c476ae3 gating: clean /go/bin to install fresh tools
Once the gating image doesn't ship with pre-installed tools, we can
remove the workaround.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-01-13 14:27:02 +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
e959abf2db Cirrus: Use branch-specific container tags
Automated building of container images is handled in quay.io based on
changes in the master branch of this repository.  However, as additional
branches are made, the "latest" image (from master) diverges from their
expectations.  Fix this by using the branch-tagged images built by quay.
For the near-term, this also implies quay.io will be configured to also
build different images for each branch, and tag them appropriately.
Long-term, image build automation should be combined with libpod
automation - to avoid needing to maintain automation in multiple
systems/locations.

Signed-off-by: Chris Evich <cevich@redhat.com>
2019-11-12 13:38:21 -05: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
82381072e1 Merge pull request #4402 from baude/onlydocs
[CI:DOCS] make docsonly prs
2019-11-01 21:44:48 +01:00