From 984758eea1ae0dee4ce2db284694012bf194b16c Mon Sep 17 00:00:00 2001
From: Simon McVittie <smcv@collabora.com>
Date: Wed, 12 Jun 2019 14:00:46 +0100
Subject: [PATCH] ci: Refresh build instructions to be self-contained

This doesn't currently include support for merging a Gitlab merge
request into the upstream branch before doing the test-build.

Signed-off-by: Simon McVittie <smcv@collabora.com>
---
 ci/Jenkinsfile | 63 ++++++++++++++++++++++++++++++++++++--------------
 1 file changed, 46 insertions(+), 17 deletions(-)

diff --git a/ci/Jenkinsfile b/ci/Jenkinsfile
index 3d0876a0b..d7bc4504f 100644
--- a/ci/Jenkinsfile
+++ b/ci/Jenkinsfile
@@ -18,7 +18,6 @@
  * License along with this package.  If not, see
  * <http://www.gnu.org/licenses/>.
  */
-@Library('steamos-ci') _
 
 pipeline {
   options {
@@ -41,14 +40,6 @@ pipeline {
         git config --global user.name Jenkins
         git config --global user.email nobody@example.com
         '''
-        checkoutCollaboraGitlab('steam/pressure-vessel', 'master', 'src')
-        dir('src') {
-          sh '''
-          set -eu
-          ./build-aux/git-version-gen .tarball-version > .tarball-version_
-          mv .tarball-version_ .tarball-version
-          '''
-        }
 
         script {
           if (env.CI_DOCKER_REGISTRY_CRED == '') {
@@ -58,6 +49,10 @@ pipeline {
             dockerRegistryCred = env.CI_DOCKER_REGISTRY_CRED;
           }
 
+          if (!env.CI_DOCKER_REGISTRY) {
+            env.CI_DOCKER_REGISTRY = 'docker.steamos.cloud'
+          }
+
           if (!env.CI_DOCKER_IMAGE) {
             env.CI_DOCKER_IMAGE = 'steamrt/sdk:scout'
           }
@@ -66,15 +61,49 @@ pipeline {
             env.CI_DOCKER_OPTIONS = ''
           }
 
-          sh """
-          sed -e 's!@BASE_IMAGE@!${env.CI_DOCKER_REGISTRY}/${env.CI_DOCKER_IMAGE}!g' < src/ci/Dockerfile.in > src/ci/Dockerfile
-          if [ -n "${env.CI_APT_SOURCES_FILE}" ]; then
-            cp "${env.CI_APT_SOURCES_FILE}" src/ci/sources.list
-          else
-            touch src/ci/sources.list
-          fi
-          """
+          if (!env.CI_PRESSURE_VESSEL_GIT_REPO) {
+            env.CI_PRESSURE_VESSEL_GIT_REPO = 'https://gitlab.steamos.cloud/steam/pressure-vessel.git'
+          }
+
+          if (!env.CI_PRESSURE_VESSEL_GIT_CRED) {
+            env.CI_PRESSURE_VESSEL_GIT_CRED = ''
+          }
+
+          if (!env.CI_APT_SOURCES_FILE) {
+            env.CI_APT_SOURCES_FILE = ''
+          }
+
+          checkout changelog: true, poll: true, scm: [
+            $class: 'GitSCM',
+            branches: [[name: "origin/${env.CI_PRESSURE_VESSEL_GIT_BRANCH}"]],
+            extensions: [
+              [$class: 'RelativeTargetDirectory', relativeTargetDir: 'src'],
+              [$class: 'PruneStaleBranch'],
+            ],
+            userRemoteConfigs: [
+              [name: 'origin', url: env.CI_PRESSURE_VESSEL_GIT_REPO, credentialsId: env.CI_PRESSURE_VESSEL_GIT_CRED]
+            ]
+          ]
+        }
 
+        dir('src') {
+          sh '''
+          set -eu
+          ./build-aux/git-version-gen .tarball-version > .tarball-version_
+          mv .tarball-version_ .tarball-version
+          '''
+        }
+
+        sh """
+        sed -e 's!@BASE_IMAGE@!${env.CI_DOCKER_REGISTRY}/${env.CI_DOCKER_IMAGE}!g' < src/ci/Dockerfile.in > src/ci/Dockerfile
+        if [ -n "${env.CI_APT_SOURCES_FILE}" ]; then
+          cp "${env.CI_APT_SOURCES_FILE}" src/ci/sources.list
+        else
+          touch src/ci/sources.list
+        fi
+        """
+
+        script {
           docker.withRegistry("https://${env.CI_DOCKER_REGISTRY}", dockerRegistryCred) {
             docker.build("${env.CI_DOCKER_REGISTRY}/pressure-vessel", '-f src/ci/Dockerfile src/ci').inside("${env.CI_DOCKER_OPTIONS}") {
               sh '''
-- 
GitLab