summaryrefslogtreecommitdiff
path: root/contrib
Commit message (Collapse)AuthorAge
* Cirrus: Fix release dependenciesChris Evich2019-07-31
| | | | | | | | | | | | | | | | | | | | | The release-task ***must*** always execute last, in order to guarantee a consistent cache of release archives from dependent tasks. It accomplishes this by verifying it's task-number matches one-less than the total number of tasks. Previous to this commit, a YAML anchor/alias was used to avoid duplication of the dependency list between 'success' and 'release' However, it's been observed that this opens the possibility for 'release' and 'success' tasks to race when running on a PR. Because YAML anchor/aliases cannot be used to modify lists, duplication is required to make 'release' actually depend upon 'success'. This duplication will introduce an additional maintenance burden. Though when adding a new task, it's already very easy to forget to update the 'depends_on' list. Assist both cases by the addition unit-tests to verify ``.cirrus.yml`` dependency contents and structure. Signed-off-by: Chris Evich <cevich@redhat.com>
* Cirrus: Fix re-run of release task into no-op.Chris Evich2019-07-31
| | | | | | | | | | This task depends upon other tasks caching their binaries. If for whatever reason the `release` task is re-run and/or is out-of-order with it's dependents, the state of cache will be undefined. Previously this would result in an error, and failing of the release task. This commit alters this behavior to issue a warning instead. Signed-off-by: Chris Evich <cevich@redhat.com>
* Cirrus: Ubuntu: Set + Test for $RUNC_BINARYChris Evich2019-07-25
| | | | Signed-off-by: Chris Evich <cevich@redhat.com>
* Cirrus: Simplify evil-unit check in imageChris Evich2019-07-25
| | | | Signed-off-by: Chris Evich <cevich@redhat.com>
* Cirrus: Silence systemd-banish noiseChris Evich2019-07-25
| | | | | | | | | | It's somewhat hard to predict which units are certinly present for any given base-image. Therefore, at image-build time, it's distracting and unhelpful to see all the errors about units that don't exist, on every platform. Simply ignore them and rely on the `check_image.sh` test to confirm none are enabled. Signed-off-by: Chris Evich <cevich@redhat.com>
* Cirrus: Fix image build metadata updateChris Evich2019-07-25
| | | | Signed-off-by: Chris Evich <cevich@redhat.com>
* Cirrus: Fix missing -n on CentOSChris Evich2019-07-25
| | | | Signed-off-by: Chris Evich <cevich@redhat.com>
* Change wait to sleep in podmanimage readmeTomSweeneyRedHat2019-07-22
| | | | | | | Change wait to sleep 100000 as we've had some reports of problems with wait: https://github.com/containers/buildah/issues/1665 Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
* bump conmon to 1.0.0-rc2Peter Hunt2019-07-22
| | | | Signed-off-by: Peter Hunt <pehunt@redhat.com>
* Cirrus: Minor scripting typo fixChris Evich2019-07-18
| | | | Signed-off-by: Chris Evich <cevich@redhat.com>
* Merge pull request #3335 from cevich/imgpruneOpenShift Merge Robot2019-07-17
|\ | | | | Cirrus: Print images that should be pruned
| * Cirrus: Print images that should be prunedChris Evich2019-07-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Over time unless they're removed, the project could grow quite a large collection of VM images. While generally cheap (less than a penny each, per month), these will become a significant cost item if not kept in-check. Add a specialized container for handling image-pruning, but limit it to only finding and printing (not actually deleting) images. Also update the image-building workflow so that base-images used to compose cache-images are also labeled with metadata. N/B: As an additional safeguard, the service account which executes the new container in production *DOES NOT* have access to delete images. This can be enabled by adding the GCE IAM role: CustomComputeImagePrune Signed-off-by: Chris Evich <cevich@redhat.com>
* | Cirrus: Add image-test for locked dpkgChris Evich2019-07-16
| | | | | | | | Signed-off-by: Chris Evich <cevich@redhat.com>
* | Cirrus: Disable most periodic services/timersChris Evich2019-07-16
| | | | | | | | | | | | | | | | | | | | For CI testing, it's important to remove as much variability from the overall system as possible. This permits focusing just on problems closely related to code-changes. To this end, and because VMs are very short-lived (2 hours at most), disable all systemd services and timers which perform periodic activities. Signed-off-by: Chris Evich <cevich@redhat.com>
* | Cirrus: Abstract destination branch refs.Chris Evich2019-07-15
|/ | | | | | | | | | | | | | | | | Various tasks and scripts behave differently depending on whether or not the build is running against a PR or on a branch, post-merge. However, a great number of them are hard-coded to the string 'master' as the destination. Since this is not always the case (there are other relevant branches), it makes sense to abstract the references with a single definition. Add a top-level `$DEST_BRANCH` variable to CI, and otherwise default to 'master' when unset. This enables running CI builds on additional branches without the overhead of updating all the static references to 'master'. Simply update `$DEST_BRANCH` at the top-level and all branch-conditional logic will function as intended. Signed-off-by: Chris Evich <cevich@redhat.com>
* Cirrus: Fix missing removal of packaged podmanChris Evich2019-07-12
| | | | | | This was originally intended, but somehow omitted from #1936 Signed-off-by: Chris Evich <cevich@redhat.com>
* Merge pull request #3106 from cevich/cirrus_releaseOpenShift Merge Robot2019-07-10
|\ | | | | Cirrus: Automate releasing of tested binaries
| * Cirrus: Automate releasing of tested binariesChris Evich2019-07-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's desirable to make archives available of builds containing actual tested content. While not official distro-releases, these will enable third-party testing, experimentation, and development for both branches (e.g. "master") and pull requests (e.g. "pr3106"). * Add a Makefile targets for archiving both regular podman binaries and the remote-client. Encode release metadata within these archives so that their exact source can be identified. * Fix bug with cross-compiling remote clients for the Windows and Darwin platforms. * Add unit-testing of cross-compiles for Windows and Darwin platforms. * A few small CI-script typo-fixes * Add a script which operates in two modes: 1. Call Makefile targets which produce release archives. Upload the archive to Cirrus-CI's built-in caching system using reproducible cache keys. 2. Utilize reproduced cache keys to attempt download of cache from each tasks. When successful, parse the file's release metadata, using it to name the archive file. Upload all recovered archives to a publicly accessible storage bucket for future reference. * Update the main testing task to call the script in mode #1 for all primary platforms. * Add a new `$SPECIALMODE` task to call the script in mode #1 for Windows and Darwin targets. * Add a new 'release' task to the CI system, dependent upon all other tasks. This new tasks executes the script in mode #2. * Update CI documentation Signed-off-by: Chris Evich <cevich@redhat.com>
* | Merge pull request #1936 from cevich/cirrus_packaged_depsOpenShift Merge Robot2019-07-09
|\ \ | |/ |/| Cirrus: Use packaged-based dependencies
| * Cirrus: Use packaged dependenciesChris Evich2019-06-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Building/installing dependencies from fixed source-version ensures testing is reliable, but introduces a maintenance burden and risks testing far outside of a real-world environment. The sensible alternative is to install dependencies from distro-packaging systems. Install all development and testing dependencies at VM cache-image build time, to help ensure testing remains stable. The existing cache-image build workflow can be utilized at any future time to build/test with updated packages. ***N/B***: This does not update any dockerfiles used by testing, that is left up to future efforts. Signed-off-by: Chris Evich <cevich@redhat.com>
* | Bump to v1.4.5-devMatthew Heon2019-07-02
|/ | | | Signed-off-by: Matthew Heon <mheon@redhat.com>
* Merge pull request #3193 from cevich/check_imageOpenShift Merge Robot2019-06-27
|\ | | | | Cirrus: More tests to verify cache_images
| * Cirrus: More tests to verify cache_imagesChris Evich2019-06-25
| | | | | | | | Signed-off-by: Chris Evich <cevich@redhat.com>
* | Bump to v1.4.4-devMatthew Heon2019-06-25
|/ | | | Signed-off-by: Matthew Heon <mheon@redhat.com>
* Update conmon to include attach socket unlinkPeter Hunt2019-06-21
| | | | Signed-off-by: Peter Hunt <pehunt@redhat.com>
* Merge pull request #3078 from cevich/cirrus_f30OpenShift Merge Robot2019-06-19
|\ | | | | Cirrus F30
| * Cirrus: Fix F30 ssh guaranteeChris Evich2019-06-14
| | | | | | | | | | | | | | The original solution using --wait does not function on F30, waiting forever. Replace it with a simple 5-minute timeout loop. Signed-off-by: Chris Evich <cevich@redhat.com>
| * Cirrus: Add support for testing F30Chris Evich2019-06-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove disused `build_cache_images` task, and update relevant dockerfiles for F30. Fix problem of cloud-init failing to expand root-device on boot (/var/lib/cloud/instance left in improper state). Fix problem of cloud-init racing with google-network-daemon.service on boot (looking for cloudconfig metadata too early). Causing root-device to _sometimes_ fail to expand. Fix problem of hack/get_ci_vm.sh argument passing. Signed-off-by: Chris Evich <cevich@redhat.com>
| * Bump gate-container up to F30Chris Evich2019-06-14
| | | | | | | | Signed-off-by: Chris Evich <cevich@redhat.com>
* | Bump to v1.4.3-devMatthew Heon2019-06-18
| | | | | | | | Signed-off-by: Matthew Heon <mheon@redhat.com>
* | run BATS tests in CirrusEd Santiago2019-06-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I'm running the BATS tests manually once in a while, and catching several problems each week that make it past the rest of CI. Since the BATS tests run at RPM gating time, we need to catch problems earlier. Try running the tests from Cirrus. Tests will be skipped on Ubuntu due to a too-ancient version of coreutils (8.28; the 'timeout -v' we use requires 8.29). Tests are run *after* integration tests, even though these take three minutes and would be nice to have fail quickly, because running before causes bizarre CI failures. Shrug. UPDATE: also fix run test, broken by #3311. Signed-off-by: Ed Santiago <santiago@redhat.com>
* | Merge pull request #3308 from cevich/always_collect_logsOpenShift Merge Robot2019-06-17
|\ \ | | | | | | Cirrus: Simplify log collection commands
| * | Cirrus: Simplify log collection commandsChris Evich2019-06-14
| | | | | | | | | | | | Signed-off-by: Chris Evich <cevich@redhat.com>
* | | Bump to v1.4.2-devMatthew Heon2019-06-14
| |/ |/| | | | | Signed-off-by: Matthew Heon <mheon@redhat.com>
* | Merge pull request #3320 from cevich/fix_ssh_raceOpenShift Merge Robot2019-06-14
|\ \ | | | | | | Cirrus: Guarantee ssh is running for rootless
| * | Cirrus: Guarantee ssh is running for rootlessChris Evich2019-06-13
| |/ | | | | | | Signed-off-by: Chris Evich <cevich@redhat.com>
* / Bump conmon to 0.3.0Peter Hunt2019-06-13
|/ | | | | | This enables cgroup v2 OOM Signed-off-by: Peter Hunt <pehunt@redhat.com>
* Remove source-built buildah from CIChris Evich2019-06-10
| | | | Signed-off-by: Chris Evich <cevich@redhat.com>
* Touchup upstream DockerfileTomSweeneyRedHat2019-06-08
| | | | | | | | The upstream/Dockerfile had a few issues that this cleans up. A few files were misplaced, wrong installs and removes. This corrects those issues. Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
* Merge pull request #3253 from cevich/clean_brent_messOpenShift Merge Robot2019-06-08
|\ | | | | Cirrus: Minor cleanup of dependencies and docs
| * Cirrus: Minor cleanup of dependencies and docsChris Evich2019-06-06
| | | | | | | | Signed-off-by: Chris Evich <cevich@redhat.com>
* | Bump to v1.4.1-devMatthew Heon2019-06-07
| | | | | | | | Signed-off-by: Matthew Heon <mheon@redhat.com>
* | Bump to v1.4.0v1.4.0Matthew Heon2019-06-07
| | | | | | | | Signed-off-by: Matthew Heon <mheon@redhat.com>
* | Cirrus: Track VM Image calling GCE projectChris Evich2019-06-05
|/ | | | | | | | | | With multiple `containers` projects updating VM Image metadata, it would be very difficult to discover which Cirrus-CI setup was responsible. Add the GCE project name to the list of metadata labels to update when this container runs. This will give more context as to which images are currently in use. Signed-off-by: Chris Evich <cevich@redhat.com>
* Merge pull request #3156 from TomSweeneyRedHat/dev/tsweeney/podmanimageOpenShift Merge Robot2019-06-04
|\ | | | | Create Dockerfiles for podmanimage
| * Create Dockerfiles for podmanimageTomSweeneyRedHat2019-06-01
| | | | | | | | | | | | | | | | | | | | | | | | The Dockerfiles necessary to create the stable, testing and upstream container images on quay.io/user/podman. Once this is commited, I will set up those images such that they will be built with every git commit. stable - Latest Fedora release image testing - Latest release on bohdi Fedora testing upstream - Latest version in upstream podman Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
* | cirrus: minor cleanup and refactoringEd Santiago2019-06-03
|/ | | | | | | | | | | | | | | | | | | | | | ...with the goal of (very soon) reusing this code, in #2947, to run system tests in CI. This is the cleanest way I can think of to do so without duplication or a large maintenance burden. Changes are: - replace references to 'ginkgo' with 'integration'. That target is already in Makefile, and is not only more readable, it's also more abstract. There is no reason for this level of code to know about ginkgo. - allow rootless_test.sh to accept an argument, that being the name of the test suite to run (default: integration). #2947 will enable 'system'. - allow integration_test.sh to serve multiple purposes, by checking its filename. #2947 will add a symlink, system_test.sh, which will then cascade down to invoke system tests. Signed-off-by: Ed Santiago <santiago@redhat.com>
* split rootless local and remote testingbaude2019-05-31
| | | | Signed-off-by: baude <bbaude@redhat.com>
* do not run remote tests inside containerbaude2019-05-30
| | | | | | | when running the podman integration tests inside a container, we should not be running the remote tests. Signed-off-by: baude <bbaude@redhat.com>
* Merge pull request #3210 from haircommander/conmon-0.2.0OpenShift Merge Robot2019-05-28
|\ | | | | bump conmon to v0.2.0