[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH v2 0/8] Using GitLab CI for build testing



Really early work on switching over to using GitLab CI over
Travis CI. GitLab is a competitor to GitHub with some advantages
such as an integrated CI system with a lot more flexibility
and control. It additionally is fully open sourced unlike GitHub
and Travis CI. We can even run an instance if that is preferred
over using the hosted instance.

This change uses GitLab CI's ability to use Docker based runners
for running tests. With GitHub we also use a Docker based runner
but we are limited to one Docker container that is then morphed
a number of different ways. With this approach we can specify
different Docker containers for every run (or use the same). By
using different Docker containers we can build environments that
match systems where Xen can and should build. Using this
approach we should be able to cutdown on the number of surpise
build failures encountered by users.

Worth noting another advantage is that builders can be VMs or even
physical hosts as well. So we can have a FreeBSD VM that can be a
build environment.

Further more the above link is to a GitLab pipeline, pipelines are
made of stages which are further composed of jobs. Currently the
example uses one stage called build and all the different distros
are different jobs.  But there's a lot of flexibility as to what
can be done here. There can be stages that check code style or other
pre-flight checks that people may be interested. There can be stages
that happen after the build stage as well such as some simple tests
(e.g. I use it to run the just built xen.gz with an initramfs only
dom0 that contains a small Alpine Linux VM that spits out a string
to an HTTP endpoint which decides that Xen build is good enough to
allow it to be merged into our testing branch).

Overall there are a lot more possibilities than what I've put together
so far. The coverage is not yet the same as Travis CI due to missing
arm builds.

Example run: https://gitlab.com/cardoe/xen/pipelines/18968075
---
change since v1:
- added makefile to help build containers
- moved readme as the first patch
- moved from "cardoe" tenant to "xen-project"
- added debian:stretch
- added clang builds
- added debug y/n builds
- added maintainer info

Doug Goldstein (8):
  ci: add README and makefile for containers
  ci: add Dockerfile for CentOS 7.2
  ci: add Dockerfile for Ubuntu 14.04
  ci: add Dockerfile for Ubuntu 16.04
  ci: add Dockerfile for Debian jessie
  ci: add Dockerfile for Debian stretch
  ci: add cfg to use GitLab CI to build
  ci: add new bits to MAINTAINERS combine with Travis

 .gitlab-ci.yml                             | 164 ++++++++++++++++++++++-
 MAINTAINERS                                |  16 +-
 automation/build/Makefile                  |  17 ++-
 automation/build/README.md                 |  34 +++++-
 automation/build/centos/7.2.dockerfile     |  41 ++++++-
 automation/build/centos/CentOS-7.2.repo    |  35 +++++-
 automation/build/debian/jessie.dockerfile  |  47 ++++++-
 automation/build/debian/stretch.dockerfile |  47 ++++++-
 automation/build/ubuntu/trusty.dockerfile  |  47 ++++++-
 automation/build/ubuntu/xenial.dockerfile  |  47 ++++++-
 10 files changed, 489 insertions(+), 6 deletions(-)
 create mode 100644 .gitlab-ci.yml
 create mode 100644 automation/build/Makefile
 create mode 100644 automation/build/README.md
 create mode 100644 automation/build/centos/7.2.dockerfile
 create mode 100644 automation/build/centos/CentOS-7.2.repo
 create mode 100644 automation/build/debian/jessie.dockerfile
 create mode 100644 automation/build/debian/stretch.dockerfile
 create mode 100644 automation/build/ubuntu/trusty.dockerfile
 create mode 100644 automation/build/ubuntu/xenial.dockerfile

base-commit: c0e34ba78aaec2e2b1aa2a810bc7b3ee1fdfcf3f
-- 
git-series 0.9.1

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.