Hi, I am working on continuous delivery again. I submitted: created https://github.com/CentOS/sig-atomic-buildscripts/pull/65 which uses rpmdistro-gitoverlay[1].
Before I go too much farther, let me back up and describe the goal: Goal ==== We build the same version of most components (etcd, docker, kubernetes, ostree, the ADB stack, the OSBS stack) etc. for both CentOS and Fedora 22/23/24 in CentOS CI. However unlike Koji, these builds would be automatic and not manual. And we hook up our github PR testers to this, so that we are more consistently verifying builds of each component across both CentOS and Fedora. (And we'll do Atomic Host ostree commits for the relevant bits, and container builds too, and hook it all up to tests, etc., but consistently generating binaries for the support matrix is step 0) Contrast vs current state ================= lsm5 is maintaining Docker in CentOS Virt SIG, but since there isn't even dist-git for CBS right now, there is basically no way for anyone else to collaborate, and plus it's manual. For me I'm trying to get 32 bit PR testing builds of ostree for Fedora, since it's still a blocker there and not having it has bit me (having to go and fix up a pile of 32 bit warnings after releases). We are very inconsistent about building other things like etcd (http://cbs.centos.org/koji/packageinfo?packageID=102 last updated 2015-04-10). Currently the ADB stack is CentOS-only. And I haven't even mentioned building containers from these RPMs. The list goes on, you get it. Details ===== Now in order for this to work, the Fedora spec files have to work on CentOS, and this is where things get fun[2]. And I need the help of people maintaining the spec files. https://gist.github.com/cgwalters/422a989264c13d1466ac617bd57a45c8 has a set of patches I'd like to push to Fedora so far for: - python-docker-py - atomic - etcd And this isn't yet doing Kubernetes or Docker. So far I'm just at the atomic command and the rpm-ostree stack. One major problem I hit right away with the golang stack is that while several of the spec files like etcd have a `%global with_bundled` support, it doesn't actually work to set it to false. Now let me get on my soapbox here about this problem and say that it's crazy and the worst of both worlds to fully de-bundle for Fedora but then fully re-bundle downstream. It means we are getting less testing for both cases. We should de-bundle some strategic important items in both cases probably, but otherwise keep them in sync. A common theme actually is that the Fedora spec files have adopted newer macros than exist in CentOS. I may look at building go-srpm-macros in the overlay. Another issue for etcd is that the patches in dist-git only apply if !bundled. Or we could go to generating spec files, but that's a whole other topic. And I still need to enhance rpmdistro-gitoverlay to understand the array of sub-git repositories that `docker.spec` pulls in. [1] https://github.com/cgwalters/rpmdistro-gitoverlay [2] Your definition may vary