From ba5747dc3a78450b3e828a4a3a486a387155d7a7 Mon Sep 17 00:00:00 2001
From: Thomas Goirand <zigo@debian.org>
Date: Fri, 22 Jul 2016 17:39:38 +0200
Subject: [PATCH] Add automatic backports

To be able to build OpenStack in Debian Stable, we need a bunch of
backported packages from Sid, which aren't maintained under the
Debian PKG OpenStack group.

This patch adds the new deb-auto-backport Git repository which
contains the list of such packages, and the necessary scripting
to build them and push them into an "uploads" folder, which content
is later on (in a post job) uploaded to the Debian repository.

Change-Id: I1e756ae77a9e4b44f2a57201aa162f7e2f51e605
---
 .../acls/openstack/deb-auto-backports.config  | 12 +++++
 gerritbot/channels.yaml                       |  1 +
 jenkins/jobs/deb-auto-backports.yaml          | 53 +++++++++++++++++++
 jenkins/jobs/projects.yaml                    |  3 ++
 zuul/layout.yaml                              | 12 +++++
 5 files changed, 81 insertions(+)
 create mode 100644 gerrit/acls/openstack/deb-auto-backports.config
 create mode 100644 jenkins/jobs/deb-auto-backports.yaml

diff --git a/gerrit/acls/openstack/deb-auto-backports.config b/gerrit/acls/openstack/deb-auto-backports.config
new file mode 100644
index 0000000000..f22b89f305
--- /dev/null
+++ b/gerrit/acls/openstack/deb-auto-backports.config
@@ -0,0 +1,12 @@
+[access "refs/heads/*"]
+abandon = group deb-packaging-core
+create = group deb-packaging-release
+label-Code-Review = -2..+2 group deb-packaging-core
+label-Workflow = -1..+1 group deb-packaging-core
+
+[receive]
+requireChangeId = true
+requireContributorAgreement = true
+
+[submit]
+mergeContent = true
diff --git a/gerritbot/channels.yaml b/gerritbot/channels.yaml
index 71ea0f7c93..bd7ff4eb54 100755
--- a/gerritbot/channels.yaml
+++ b/gerritbot/channels.yaml
@@ -1488,6 +1488,7 @@ openstack-pkg:
     - change-merged
     - x-vrif-minus-2
   projects:
+    - openstack/deb-auto-backports
     - openstack/deb-openstack-pkg-tools
   branches:
     - master
diff --git a/jenkins/jobs/deb-auto-backports.yaml b/jenkins/jobs/deb-auto-backports.yaml
new file mode 100644
index 0000000000..5e5f811ddb
--- /dev/null
+++ b/jenkins/jobs/deb-auto-backports.yaml
@@ -0,0 +1,53 @@
+- job:
+    name: pkgdeb-build-auto-backports
+    node: debian-jessie
+
+    wrappers:
+      - build-timeout:
+          timeout: 30
+      - timestamps
+
+    builders:
+    - gerrit-git-prep
+    - shell: |
+          #!/bin/bash
+
+          set -x
+          set -e
+
+          sudo cp /etc/apt/sources.list.available.d/debian-openstack-newton.list /etc/apt/sources.list.d
+          sudo apt-get update
+          sudo apt-get install -y openstack-pkg-tools
+          sudo pkgos-infra-install-sbuild
+          ./check-and-build-bpo
+
+    publishers:
+      - console-log
+
+- job:
+    name: pkgdeb-publish-auto-backports
+    node: debian-jessie
+
+    wrappers:
+      - build-timeout:
+          timeout: 30
+      - timestamps
+
+    builders:
+    - gerrit-git-prep
+    - shell: |
+          #!/bin/bash
+
+          set -x
+          set -e
+
+          sudo cp /etc/apt/sources.list.available.d/debian-openstack-newton.list /etc/apt/sources.list.d
+          sudo apt-get update
+          sudo apt-get install -y openstack-pkg-tools
+          sudo pkgos-infra-install-sbuild
+          ./check-and-build-bpo
+
+    publishers:
+      - deb-pkgs:
+          project: deb-auto-backports
+      - console-log
diff --git a/jenkins/jobs/projects.yaml b/jenkins/jobs/projects.yaml
index d867216e02..8e0c4989eb 100644
--- a/jenkins/jobs/projects.yaml
+++ b/jenkins/jobs/projects.yaml
@@ -1344,6 +1344,9 @@
       - reprepro-import-{reprepro}-{codename}:
           reprepro: debian-openstack
           codename: jessie
+      - reprepro-import-{reprepro}-{codename}:
+          reprepro: debian-openstack
+          codename: jessie-backports
       - reprepro-release-{volume}:
           volume: deb-openstack
 
diff --git a/zuul/layout.yaml b/zuul/layout.yaml
index 089360b0b6..db3eeb0c7e 100755
--- a/zuul/layout.yaml
+++ b/zuul/layout.yaml
@@ -5742,6 +5742,18 @@ projects:
       - name: merge-check
       - name: noop-jobs
 
+  - name: openstack/deb-auto-backports
+    template:
+      - name: merge-check
+    check:
+      - pkgdeb-build-auto-backports
+    gate:
+      - pkgdeb-build-auto-backports
+    post:
+      - pkgdeb-publish-auto-backports:
+        - reprepro-import-debian-openstack-jessie-backports:
+          - reprepro-release-deb-openstack
+
   - name: openstack/deb-openstack-pkg-tools
     template:
       - name: merge-check