Recently the container image build jobs have been failing with the
cirrus error:
```
Failed to start: INVALID_ARGUMENT: Operation with name
"operation-1657739085511-5e3b475527b8f-779ec7ef-41f9804e" failed with
status = HttpJsonStatusCode{statusCode=INVALID_ARGUMENT} and message =
BAD REQUEST
```
I was able to track this down to an obsolete
`build-push-c6193881921355776` image. Fortunately I was able to
un-obsolete the VM image. Update the time-stamping meta_task to include
this image to prevent this problem in the future.
Signed-off-by: Chris Evich <cevich@redhat.com>
Contents updated to more closely resemble the same docs in the podman
repository. Also, remove the `centos7` compatibility section (and
build context) given it's not been built or maintained in over two
years.
Signed-off-by: Chris Evich <cevich@redhat.com>
The github actions workflow for this operation is complex and difficult
to maintain. For several months now a replacement has been running well
in the podman repository. It's scripts/components are centralized,
versioned, unit, and integration tested. Add cirrus tasks to run the
build, and another task to allow test builds in a PR.
This also adds support for a new magic CI string: `[CI:BUILD]`.
With this string in the PR title, automation will only do basic build
verification, and enable testing of the multi-arch build process.
Otherwise, many tasks were updated to not be created when running the
cirrus-cron multi-arch image builds, since this would simply be a waste
of time and invitation for flakes.
Signed-off-by: Chris Evich <cevich@redhat.com>
The use of the generic 'DEBUG' name in varialbes or flags can be very
problematic and lead to difficult to troubleshoot problems. Update CI
VM images to those including updated automation library that uses the
`$A_DEBUG` env. var. instaed. Also update other repository files which
make use of the generic form.
Signed-off-by: Chris Evich <cevich@redhat.com>
Add cirrus boiler plate for rootless testing infrastructure.
Following commit introduces only neccassary foundation and skeleton
which will be used by rootless testing of buildah.
[NO NEW TESTS NEEDED]
Signed-off-by: Aditya R <arajan@redhat.com>
...by bumping up the CI VM ID to ones that include the
git-daemon (Fedora) or git-daemon-run (Ubuntu) packages.
Reason: #3701 rewrote some tests to work around github
closing 'git://' protocol access... but those new tests
were simply being skipped.
Reference: https://github.com/containers/podman/issues/12851
Signed-off-by: Ed Santiago <santiago@redhat.com>
Execute all tasks in three dependent, parallel groups
1. Meta + smoke + vendor + cross
2. Unit + int. + containerized-int. + conformance
3. Success
Signed-off-by: Chris Evich <cevich@redhat.com>
This is somewhat of a band-aid since these two tasks take 45+ minutes
each. Running them in parallel improves the overall runtime when
tests are otherwise/generally passing. If/when unit tests fail, the
status won't update until integration tasks complete, but the failure
will be immediately observable in a PR. So it's a minor price to pay
for improved runtime in the general case.
Signed-off-by: Chris Evich <cevich@redhat.com>
Remove `static_build` from ci as it is becoming hard to keep up with
`nix` hiccups in CI.
------
Before Deciding to remove static_build from CI we tried things below :
Things decided below worked but in order to keep maintaince simple
consensus was made to remove static_build. Read more here:
https://github.com/containers/buildah/pull/3679
It seems nixos/nix:latest expects nixbld user to be added and specified in
build-users-group but this should be only needed for multi-user
mode.
Hence I suspect latest push has a regression. Lock the nix to last working
image.
[NO NEW TESTS NEEDED]
Signed-off-by: Aditya Rajan <arajan@redhat.com>
The Fedora 35 cloud images have switched to UEFI boot with a GPT
partition. Formerly, all Fedora images included support for runtime
re-partitioning. However, the requirement to test alternate storage
has since been dropped/removed. Rather than maintain a disused
feature, and supporting scripts, these Fedora VM images have reverted
to the default: Automatically resize to 100% on boot.
Signed-off-by: Chris Evich <cevich@redhat.com>
Update which version of Mac OS X we use for running the cross-compile
check in CI from Catalina (10.15) to Big Sur (11).
Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
Observed a unit-test typical runtime is around 45m, so a 50m timeout is
cutting things closely given variability in networking and shared vCPU
performance. Increase the timeout to 1-hour to provide an additional
buffer.
Signed-off-by: Chris Evich <cevich@redhat.com>
While vendoring c/storage v1.34.0 I was having issues
with io/fs not being able to be vendored via calls in the
latest BurntSushi. Fortunately I remembered a change to
the Skopeo Makefile that @vrothberg had made recently and
viola, that fixed it.
Also per @nalind's review, I've bumped Go from 1.13 to 1.6 in the
.cirrus.yml file.
[NO NEW TESTS NEEDED]
Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
This image is no-longer maintained and unnecessarily large for
essentially a "no-op" task. Use alpine instead, which is likely
cached from heavy use anyway, and don't even bother running
commands through a shell.
Signed-off-by: Chris Evich <cevich@redhat.com>
Installing packages at runtime (from an external source) is problematic
for many reasons. Specifically in the case of buildah/docker
conformance testing, it means the current "latest" pacakges are
always installed. This is a problem as new release branches are
created, because it presents an opportunity for test-environment changes
to happen after buildah/test code is stabilized.
Fix this by using new/special VM images which cache the required docker
packages. At runtime then, the required packages may be installed from
this cache instead of reaching out to the repository. Since images used
by tests on release branches never change, this will also serve to
stabilize the package versions for that specific environment.
Signed-off-by: Chris Evich <cevich@redhat.com>
Also simplify `lib.sh` after supporting changes incorporated
into automation library 2.x+ (present in all VM and container
images).
* No need to force-load `/etc/profile` and handle it's expectation
to **not** being in `errexit` mode.
* Slightly re-arrange loading of automation library files for
clarity.
* Remove dependency on updating `/etc/environment` for GPG.
* Remove redundant showrun() function (now present in automation
library)
* Update comments.
Signed-off-by: Chris Evich <cevich@redhat.com>
Add a --from option to `buildah add` and `buildah copy`, mirroring the
option for the Dockerfile instruction.
Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
When we're using the overlay driver (which means we know overlay is
available), use it to make volumes appear to be writeable during RUN
instructions instead of saving/restoring their contents.
This avoids having to copy the contents of the volume directory before
each RUN instruction, and having to remove and extract the contents
after each RUN instruction, which should be faster, particularly if the
amount of content in that volume location is large.
For empty directories, it will at least avoid adding an "opaque"
notation for the directory in a layer that might otherwise be empty.
Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
In anticipation of F34beta support, preemptively disable testing on
"prior-Fedora". This will allow development to move forward without
a soon-to-be-EOL distro. holding anything back.
Signed-off-by: Chris Evich <cevich@redhat.com>
These changes execute the cross-compile build naively on an OSX VM to
more thoroughly verify multi-platform support (other than on Linux). In
other words, it better confirms that any Linux-only changes do not leak
into non-Linux environments. This change also enables greatly
simplifying automation scripts, as there is no longer any need to
support/check the `$CROSS_TARGET` variable.
Signed-off-by: Chris Evich <cevich@redhat.com>
Also, utilize the common library functions from containers/automation.
This library is now pre-installed into the VM images. There are some
minor API differences to a few frequently used functions. Otherwise
the behaviors are largely identical.
Signed-off-by: Chris Evich <cevich@redhat.com>
Utilize VM Images produced from the containers/automation_images repo.
Also, rearrange tasks to more closely match their runtime dependency
order.
Signed-off-by: Chris Evich <cevich@redhat.com>
This change mirrors a similar change made in early 2020 for the
containers/podman repository. Primarily, it alters the appearance of
the task names in the Github WebUI to be more readable by humans.
Also, the former "gate" task is renamed to "smoke". This prevents
confusion with downstream Fedora/RHEL post-packaging testing which
is(also referred to as the "gate" tests.
Finally, task-dependencies are altered to support a cleaner flow which
will be implemented in a future commit.
Signed-off-by: Chris Evich <cevich@redhat.com>
The versions of these packages on Fedora/Ubuntu are important/relevant
for testing, make them easy to observe.
Signed-off-by: Chris Evich <cevich@redhat.com>
With imagebuilder v1.1.8, our conformance tests should start passing, so
we don't need to tolerate any failures in them going forward.
Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
Try running the gating test with a lot more memory (12Gb, just shy of
the maximum of 13 allowed for our default 2 vcpu configuration, instead
of the default of 4Gb that we use elsewhere). We're seeing the linting
process getting killed frequently without any additional explanation,
and our current best guess is that it's the OOM killer.
Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
Remove several artifacts necessary for bors functionality. Since bors
was removed/disabled, these items are no-longer necessary.
Signed-off-by: Chris Evich <cevich@redhat.com>
Expand the list of OS/arch combinations we check when we're checking if
we can successfully be cross-compiled, and fix up a couple of places
that wouldn't pass otherwise.
Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
2529: Cirrus: Use newly built VM images r=rhatdan a=cevich
#### What type of PR is this?
/kind other
#### What this PR does / why we need it:
These new images include golang `1.13` on Ubuntu 19 and 20.
#### How to verify it
CI tests will all pass
#### Which issue(s) this PR fixes:
Fixes https://github.com/containers/buildah/pull/2527#issuecomment-671338261
#### Special notes for your reviewer:
Let me know if help is needed confirming this fixes the problem.
#### Does this PR introduce a user-facing change?
```release-note
None
```
Co-authored-by: Chris Evich <cevich@redhat.com>
Move the conformance tests from ginkgo to using the default testing
package and github.com/stretchr/testify/require, preserving the existing
tests and adding more.
Add conformance tests to our Cirrus configuration, currently marked as
an allowed failure.
Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
Increase the timeout we give for unit tests from the default (10
minutes) to 40 minutes for the tests, 45 minutes for the test job, since
they're timing out in CI.
Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
All packages required for building + testing buildah are now included in
VM images shared withthe libpod project's CI system. Remove former
`setup.sh` and `lib.sh` facilities for installing/updating packages.
Also add in a new function for removing the pre-installed buildah
package files (since we run and test from source). This mirrors
the same behavior used in libpod's CI setup.
Signed-off-by: Chris Evich <cevich@redhat.com>
Due to some unknown problem with package repositories, all ubuntu 19
testing is failing. This commit temporarily disables that part of the
matrix until a fix can be discovered and implemented.
Signed-off-by: Chris Evich <cevich@redhat.com>
For whatever reason, Bors-ng has trouble interpreting multiple
status-checks as being required when their names contain wild-
cards (like `testing%`). Instead, it will simply pick one
that happens to match the name, and fail to consider all others.
Until that issue can be debugged and fixed, use a single "success"
task to represent pass/fail status of all required checks.
Signed-off-by: Chris Evich <cevich@redhat.com>
Add initial support for Bors-ng replacement for Homu providing "ever
green" merges of PRs. Ref: https://bors.tech/
Note: Bors-ng cannot deal with tasks marked 'skipped' by Cirrus-CI when
testing or attempting a merge. All tasks must always run on all except
temporary branches. The only significant marker for a required-for-merge
task are the status/pr-status name match strings in `bors.toml`.
Signed-off-by: Chris Evich <cevich@redhat.com>
Certain versions of go have different vendoring capabilities.
We want to make sure that vendoring the the vendor checker are
running with the same version of golang. We do this by using
podman to run a container of the lates golang container image.
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
Closes: #1949
Approved by: TomSweeneyRedHat
These were produced as an intended byproduct of:
https://github.com/containers/libpod/pull/3754
Where 'systemd_banish.sh' was run during base-image production.
Therefor, during run-time there should no longer be interference
of testing by background/periodic processes.
Signed-off-by: Chris Evich <cevich@redhat.com>