summaryrefslogtreecommitdiff
path: root/contrib/cirrus
Commit message (Collapse)AuthorAge
* Merge pull request #2531 from cevich/rootless_stubOpenShift Merge Robot2019-03-09
|\ | | | | Cirrus: Add dedicated rootless mode testing
| * Cirrus: Add dedicated rootless mode testingChris Evich2019-03-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Certain integration tests require execution as a regular user. This is acomplished by `PodmanTest.PodmanAsUserBase()` wrapping a specialized execution environment, in `test/utils/utils.go`. However, doing this requires passing through python, which vastly increases the complexity of debugging low-level problems. This commit introduces a new parallel task, run as a regular user on the VM as set by three environment variables. All commands executed in the ``rootless_test.sh`` script, will occur as a real user with a name and home directory, just as `$DIETY` intended. All env. vars established during `environment_setup.sh` (for root) are available. The PR source in `$GOSRC` and `$GOPATH` are owned by this user, and ready for use. Signed-off-by: Chris Evich <cevich@redhat.com>
* | Cirrus: Use imgts container to record metadataChris Evich2019-03-06
|/ | | | | | | | | | | Make use of the built imgts container image to track VM image usage statistics for every automation run. Also update and add small check to the gate test that verifies expected formatting/content of the `.cirrus.yml` file WRT VM Image names. Signed-off-by: Chris Evich <cevich@redhat.com>
* Globally increase test timeout to 90-minutesChris Evich2019-03-04
| | | | Signed-off-by: Chris Evich <cevich@redhat.com>
* cirrus: Drop ginkgo, gomega, easyjson installChris Evich2019-03-04
| | | | Signed-off-by: Chris Evich <cevich@redhat.com>
* Cirrus: Add BATS package for all platformsChris Evich2019-03-04
| | | | Signed-off-by: Chris Evich <cevich@redhat.com>
* Fix up handling of user defined network namespacesDaniel J Walsh2019-02-23
| | | | | | | | | If user specifies network namespace and the /etc/netns/XXX/resolv.conf exists, we should use this rather then /etc/resolv.conf Also fail cleaner if the user specifies an invalid Network Namespace. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
* Cirrus: Install Go 1.11 on Ubuntu VMsChris Evich2019-02-22
| | | | | | | | | | | | | | There is no native package for this, so the packaged version must also be installed, otherwise all the support/dependencies would be removed also (like go-md2man). Fix this by installing from the google released tarball, into /usr/local/go and set $GOROOT to point there. Also, include a small fix for hack/get_ci_vm.sh not installing testing dependencies because of an old assumption. ***CIRRUS: REBUILD IMAGES*** Signed-off-by: Chris Evich <cevich@redhat.com>
* Cirrus: Add 20m extra timeout for UbuntuChris Evich2019-02-22
| | | | | | | Tests running slower than normally-slow, bump timeout to allow them to pass until better solution (for slow Ubuntu tests) can be found. Signed-off-by: Chris Evich <cevich@redhat.com>
* packer: Make Makefile host arch sensitiveNitesh Konkar2019-02-18
| | | | | | | | `make localunit` fails on non-amd64 archs as it unzips packer_1.3.2_linux_amd64.zip irrespective of host arch its running on. Signed-off-by: Nitesh Konkar <niteshkonkar@in.ibm.com>
* Cirrus: add vendor_check_taskValentin Rothberg2019-02-06
| | | | | | | | | | | * Make sure that all vendored dependencies are in sync with the code and the vendor.conf by running `make vendor` with a follow-up status check of the git tree. * Vendor ginkgo and gomega to include the test dependencies. Signed-off-by: Chris Evic <cevich@redhat.com> Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
* Cirrus: Add RHEL-7 testingChris Evich2019-01-30
| | | | | | | | | | | | | | Add necessary tweaks to base-image build/import process so that image can successfully boot with networking enabled. Build the base image and update ``.cirrus.yml`` accordingly. Also make a minor improvement to cache-image building to help save space in GCP image storage. Namely, instead of storing every produced image, export them into google storage buckets w/ life-cycle enabled. For production use, they may be converted back into GCE images, otherwise they will expire after a time. Signed-off-by: Chris Evich <cevich@redhat.com>
* Cirrus: Enable AppArmor build and testChris Evich2019-01-29
| | | | | | | | | This was specifically disabled early on in transitioning to cirrus due to an excessive number of test failures and lack of knowledge. This commit reverses the stance and unifies build and test commands across all current platforms. Signed-off-by: Chris Evich <cevich@redhat.com>
* cirrus: Record start/end time of important thingsChris Evich2019-01-17
| | | | | | | | | | | | | Previously we only reported the date/time at the beginning of a run since it's not available in the Cirrus-CI system. This commit generalizes the solution, recording start/end times for all major events. Also the timestamps are recorded into a local file on the VMs. This is intended for future use, for example tracking execution-time trends. Signed-off-by: Chris Evich <cevich@redhat.com>
* Run integrations test with remote-clientbaude2019-01-14
| | | | | | | | | | | | Add the ability to run the integration (ginkgo) suite using the remote client. Only the images_test.go file is run right now; all the rest are isolated with a // +build !remotelinux. As more content is developed for the remote client, we can unblock the files and just block single tests as needed. Signed-off-by: baude <bbaude@redhat.com>
* Merge pull request #2129 from cevich/timestampOpenShift Merge Robot2019-01-10
|\ | | | | Cirrus: (Minor) Print timestamp
| * (Minor) Cirrus: Print timestamp at startChris Evich2019-01-10
| | | | | | | | | | | | Also record into a file in case a later reference is required Signed-off-by: Chris Evich <cevich@redhat.com>
* | Minor: Remove redundant basename command in ooe.shChris Evich2019-01-07
|/ | | | Signed-off-by: Chris Evich <cevich@redhat.com>
* cirrus: Use updated images including new cruiChris Evich2018-12-21
| | | | | | | Also add two minor tweaks which were preventing images from building properly. Signed-off-by: Chris Evich <cevich@redhat.com>
* Use existing CRIU packages in CI setupAdrian Reber2018-12-21
| | | | | | | | | | | | For all in testing involved distribution a new enough CRIU exists as a package. Fedora provides CRIU packages directly. For CentOS/RHEL there is a COPR with the latest CRIU version and for Ubuntu there is a PPA for the latest CRIU version. Let's use these packages and fall back to building from git if necessary. Signed-off-by: Adrian Reber <adrian@lisas.de>
* Cirrus: One IRC notice onlyChris Evich2018-12-18
| | | | | | | | | The podbot messages are becoming obnoxious as more distributions are tested. Only call the `success.sh` script once, after all testing was successful. Also make update the message to include more helpful text and url. Signed-off-by: Chris Evich <cevich@redhat.com>
* Merge pull request #2010 from cevich/cirrus_editorsDaniel J Walsh2018-12-17
|\ | | | | Cirrus: Add text editors to cache-images
| * Cirrus: Add text editors to cache-imagesChris Evich2018-12-14
| | | | | | | | | | | | | | | | | | | | Occasionally people need to access the VM's for troubleshooting/debugging. Having an editor pre-installed makes life easier and doesn't cost any extra test-time. ***CIRRUS: REBUILD IMAGES*** Signed-off-by: Chris Evich <cevich@redhat.com>
* | Add script to create CI VMs for debuggingChris Evich2018-12-14
| | | | | | | | | | | | | | | | | | | | | | | | Frequently debugging of CI-related problems requires going hands-on within the environment. However, reproducing the environment by hand is very tedious and error prone. This script permits authorized users to produce VM's based on any available cache-image, and automatically remove them upon logout. Also: Bump up VM disk sizes to 200GB due to performance reasons Signed-off-by: Chris Evich <cevich@redhat.com>
* | Cirrus: Migrate PAPR testing of F28 to CirrusChris Evich2018-12-14
|/ | | | | | | | | | | Since the most recent TWO versions of Fedora are officially supported upstream, both need to be tested. Implement the concept of a 'prior' Fedora release in both base-image and cache-image production. Utilize the produced cache-image to test libpod. Remove F28 testing from PAPR. Much thanks to @baude @giuseppe for help with this. Signed-off-by: Chris Evich <cevich@redhat.com>
* Fix documentation links and flowChris Evich2018-12-12
| | | | Signed-off-by: Chris Evich <cevich@redhat.com>
* Cirrus: Update base-image build docsChris Evich2018-12-10
| | | | | | | Mostly minor tweaks and clarifications. Though there was one missing (required) make value I fixed. Signed-off-by: Chris Evich <cevich@redhat.com>
* Cirrus: Document and codify base-image productionChris Evich2018-12-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A number of images required for future testing are not present in GCE. Importing them is a long proscribed process prone to errors and complications. Improve this situation by documenting, and encoding the majority of the steps required. Due to the required complexity, these are clearly identified as 'semi-automated'. This means a discerning eye is sometimes needed to address unforeseen problems (networking issues, format or packaging changes, etc). Nevertheless, having these steps in writing, will reduce current and future maintenance burden while supporting future testing needs of RHEL, Fedora and Fedora Atomic Host. Also: * Add necessary configuration, scripts, and Makefile updates needed to prepare RHEL, Fedora, & FAH cloud images for use in GCE. This is a complex, multi-step process where the cloud image is booted un a local user-mod qemu-kvm instance, where it can be modified. From there, it's converted into a specific format, and imported into GCE. Lastly, the imported raw disk data is made available as a GCE VM image. Note: As of this commit, the RHEL base-image builds (CentOS has native image), however neither RHEL or CentOS cache-images build correctly. * Left testing on FAH disabled, the GCE/Cirrus integration needs needs more work. Specifically, the python3-based google startup script service throws a permission-denied (as root) when trying to create a temp. directory. Did not investigate further, though manually running the startup script does allow the libpod tests to start running. * Enabled Fedora 29 image to execute tests and general use. * Utilize the standardized F28-based container image for gating of more the intensive unit and integration testing. Update documentation to reflect this as the standard platform for these checks. Rename tasks with shorter names and to better reflect their purpose. * Cirrus: Trim unnecessary env vars before testing since the vast majority are only required for orchestration purposes. Since most are defined within `.cirrus.yml`, it's a good place to store the list of undesirables. Since each of the cirrus-scripts runs in it's own shell, unsetting these near the end will have no consequence. Also trim down the number of calls to show_env_vars() Signed-off-by: Chris Evich <cevich@redhat.com>
* Cirrus: Use Makefile for image-buildingChris Evich2018-12-06
| | | | | | | | | | | | | | | | | | | | The packer tool takes JSON as input for the details of producing VM images to be used for PR CI-testing. JSON is not a very human-friendly format, without support for comments and frequently containing lots of duplicate data. Fix this by using a Makefile + simple python one-liner to convert from a human-friendly YAML format into packer-native JSON. This allows use of anchors/aliases to reduce duplication, and allows inline comments for easier maintainability. This also allows separating the 'test' action from the 'build' action, for earlier and better syntax problem detection. Lastly, there are some minor ``lib.sh`` and ``integration_test.sh`` updates to support future work, and slightly improve the build and test environments. Signed-off-by: Chris Evich <cevich@redhat.com>
* tests: always install runc on UbuntuGiuseppe Scrivano2018-12-01
| | | | Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
* cirrus: make apt noninteractiveGiuseppe Scrivano2018-11-30
| | | | Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
* Cirrus: Add documentation for system-testingChris Evich2018-11-13
| | | | | | ***CIRRUS: REBUILD IMAGES*** Signed-off-by: Chris Evich <cevich@redhat.com>
* Cirrus: Simplify optional system-test scriptChris Evich2018-11-13
| | | | | | | | | | | | | Previously it was required to call the verify, unit, and integration scripts in order to build/install dependencies, and libpod. This wastes time during the (optional) system-testing, since the actual unit/integration testing is also happening in parallel. Consolidate only the distribution-specific build steps into the system-testing script. This way, only the required steps are performed in their respective (parallel) tasks. Signed-off-by: Chris Evich <cevich@redhat.com>
* Cirrus: Reveal magic, parallel system-testingChris Evich2018-11-13
| | | | | | | | | | | | | Previously, several magic strings were in place to affect cirrus-ci operations. Two were buried within scripts. One to optionally execute system-tests within a PR. Another to avoid re-building cache-images upon every merge. Move these magic strings out into the open, buy locating their logic up-front in the ``.cirrus.yml`` file. This improves readability and reduces surprise/astonishment at runtime. Signed-off-by: Chris Evich <cevich@redhat.com>
* Cirrus: Ignore any error from the IRC messengerChris Evich2018-11-08
| | | | Signed-off-by: Chris Evich <cevich@redhat.com>
* Merge pull request #1616 from cevich/cirrus_add_systemtestOpenShift Merge Robot2018-11-07
|\ | | | | Cirrus-CI: Add option to run system-tests
| * Cirrus-CI: Add option to run system-testsChris Evich2018-10-31
| | | | | | | | | | | | | | | | | | | | | | | | Normally, we would not run system-tests as part of PR-level CI, they're simply too heavy-weight and complex. However, in some instances it may be desirable to provide a quick feedback loop, prior to release packaging and official testing. Enable this by executing the system-tests when a magic string is present in the PR description: ``***CIRRUS: SYSTEM TEST***`` Signed-off-by: Chris Evich <cevich@redhat.com>
* | Merge pull request #1624 from cevich/update_fedoraOpenShift Merge Robot2018-11-01
|\ \ | | | | | | Cirrus: Enable updating F28 image
| * | Cirrus: Enable updating F28 imageChris Evich2018-10-31
| |/ | | | | | | | | | | | | | | | | | | Previously this was disabled as some package was breaking networking on GCE after updating + rebooting. This is fixed now, so we should update packages when building the fedora test VM image. https://pagure.io/cloud-sig/issue/292 Signed-off-by: Chris Evich <cevich@redhat.com>
* | Cirrus: Skip rebuilding images unless instructedChris Evich2018-10-31
| | | | | | | | | | | | | | | | | | | | Given frequent merges, it doesn't make sense to rebuild the VM testing images every time. Instead, monitor the PR title and description for a magic string, only triggering builds on a match: ***CIRRUS: REBUILD IMAGES*** Signed-off-by: Chris Evich <cevich@redhat.com>
* | Cirrus: Add a readmeChris Evich2018-10-31
| | | | | | | | Signed-off-by: Chris Evich <cevich@redhat.com>
* | Ubuntu VM image build: try update twiceChris Evich2018-10-31
|/ | | | | | | Occasionally, short-term temporary connectivity problems prevent ubuntu from updating on GCE. As a workaround, attempt these commands twice. Signed-off-by: Chris Evich <cevich@redhat.com>
* Merge pull request #1648 from cevich/cirrus_podbotOpenShift Merge Robot2018-10-23
|\ | | | | Add simple IRC messenger
| * Cirrus: IRC message when cirrus testing successfulChris Evich2018-10-18
| | | | | | | | Signed-off-by: Chris Evich <cevich@redhat.com>
| * cirrus: Add simple IRC messengerChris Evich2018-10-18
| | | | | | | | | | | | | | | | Add a naive python script that's able to connect to IRC and send a single line of text to the #podman channel. Wrap this in a new library function to ensure nick-name collisions are unlikely. Signed-off-by: Chris Evich <cevich@redhat.com>
* | Cirrus: Install CRIU in test imagesChris Evich2018-10-18
| | | | | | | | Signed-off-by: Chris Evich <cevich@redhat.com>
* | Cirrus: Use different CNI_COMMIT for FedoraChris Evich2018-10-18
| | | | | | | | | | | | | | Just noticed this in Dockerfile.Fedora. Updated all the right places to make this happen. Signed-off-by: Chris Evich <cevich@redhat.com>
* | Fix Cirrus/Packer VM image buildingChris Evich2018-10-18
|/ | | | | | | | | | | | | | | | An invalid GCE value is being passed to packer, preventing it from building VM images. Fix this, and centralize the definition of the image name suffix by setting it at ``setup_environment.sh`` call-time, rather encoding inside packer's `libpod_images.json`. This makes the value available for use by other scripts. Also, switch the unique component of the name, to be based on the commit-sha being tested. This will improve traceability, since the git history is more permanent than the `CIRRUS_BUILD_ID` env. var. The later is subject to log-rotation, destroying evidence of the images source state. Signed-off-by: Chris Evich <cevich@redhat.com>
* Re-add source-verify in cirrus-ciChris Evich2018-10-05
| | | | | | | | | Don't waste GCE VM resources for 30-min of testing, when verify would fail after 3-minutes. This is the simpelest mechanism to save cloud CPU-time while GCE is under trial-status (can not set quotas). Signed-off-by: Chris Evich <cevich@redhat.com>
* Add configuration for Cirrus-CIChris Evich2018-10-04
Testing podman requires exercising on a full-blown VM. The current containerized-approach is complicated, and mostly a band-aid over shortcomings in the other CI systems. Namely, we want: * To pre-build environments with dependencies to reduce the setup time needed for testing. * The ability to verify the pre-built environments are working before utilizing them for further testing. * A simple, single set of flexible automation instructions to reduce maintenance burden. * Ease of environment reproduction across clouds or locally, for debugging failures. This change leverages Cirrus-CI + Packer + collection of shell scripts to realize all of the above. Signed-off-by: Chris Evich <cevich@redhat.com>