← Back to team overview

sts-sponsors team mailing list archive

[Merge] ~ack/maas-ci/+git/maas-ci-internal:ws-machine-listing-spike-rebase into ~maas-committers/maas-ci/+git/maas-ci-internal:main

 

Alberto Donato has proposed merging ~ack/maas-ci/+git/maas-ci-internal:ws-machine-listing-spike-rebase into ~maas-committers/maas-ci/+git/maas-ci-internal:main.

Commit message:
add job for rebasing the machine listing spike branch



Requested reviews:
  MAAS Committers (maas-committers)

For more details, see:
https://code.launchpad.net/~ack/maas-ci/+git/maas-ci-internal/+merge/433860
-- 
Your team MAAS Committers is requested to review the proposed merge of ~ack/maas-ci/+git/maas-ci-internal:ws-machine-listing-spike-rebase into ~maas-committers/maas-ci/+git/maas-ci-internal:main.
diff --git a/jobs/ws-machine-listing-spike-rebase.groovy b/jobs/ws-machine-listing-spike-rebase.groovy
new file mode 100644
index 0000000..fda8d81
--- /dev/null
+++ b/jobs/ws-machine-listing-spike-rebase.groovy
@@ -0,0 +1,55 @@
+pipeline {
+    agent {
+        docker {
+            image 'build-env-maas-master:{{ series }}'
+            registryUrl '{{ docker_registry }}'
+            registryCredentialsId '{{ docker_registry_cred }}'
+            args '-u 0:0'
+            reuseNode true
+        }
+    }
+
+    stages {
+        stage('Rebase branch') {
+            steps {
+                cleanWs()
+                sh '''
+                if [ ! -z \$http_proxy ]; then
+                    echo "Acquire::http::proxy \\"\$http_proxy\\"\\;" > /etc/apt/apt.conf.d/launchpad-ci-proxy
+                    echo "Acquire::https::proxy \\"\$http_proxy\\"\\;" >> /etc/apt/apt.conf.d/launchpad-ci-proxy
+                  fi
+
+                export DEBIAN_FRONTEND=noninteractive
+                apt-get update
+                apt -y install git
+                '''
+
+                withCredentials([file(credentialsId: 'lp-lander-sshkey', variable: 'SSHKEY')]) {
+                    withEnv(["GIT_SSH_COMMAND=ssh -i $SSHKEY -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"]) {
+                        lock(resource: "maas-${REBASE_BRANCH}") {
+                            sh '''
+                            mkdir -p /run/build
+                            cd /run/build
+                            git config --global user.name 'MAAS Lander'
+                            git config --global safe.directory /run/build/repo
+
+                            git clone --branch ${REBASE_BRANCH} git+ssh://maas-lander@xxxxxxxxxxxxxxxxx/${REPO} repo
+                            cd repo
+                            git rebase origin/${BASE_BRANCH}
+                            git push --force origin ${REBASE_BRANCH}
+                            '''
+                        }
+                    }
+                }
+            }
+        }
+    }
+    post {
+        success {
+            mattermostSend (color: 'green', message: "[${env.JOB_NAME} #${env.BUILD_NUMBER}](${env.BUILD_URL}) :success: Rebased branch ${env.REBASE_BRANCH} on ${env.BASE_BRANCH} in ${env.REPO}")
+        }
+        failure {
+            mattermostSend (color: 'red', message: "[${env.JOB_NAME} #${env.BUILD_NUMBER}](${env.BUILD_URL}) :fire: Failed to rebase branch ${env.REBASE_BRANCH} on ${env.BASE_BRANCH} in ${env.REPO}")
+        }
+    }
+}
diff --git a/jobs/ws-machine-listing-spike-rebase.yaml b/jobs/ws-machine-listing-spike-rebase.yaml
new file mode 100644
index 0000000..44afa1f
--- /dev/null
+++ b/jobs/ws-machine-listing-spike-rebase.yaml
@@ -0,0 +1,24 @@
+- project:
+    name: ws-machine-listing-spike
+    jobs:
+      - ws-machine-listing-spike
+
+- job-template:
+    name: ws-machine-listing-spike
+    triggers:
+      - timed: '@daily'
+    parameters:
+        - string:
+            name: REBASE_BRANCH
+            description: Branch to rebase
+            default: ws-machine-listing-spike
+        - string:
+            name: BASE_BRANCH
+            description: Base branch to rebase on
+            default: master
+        - string:
+            name: REPO
+            description: GIT repository 
+            default: ~maas-committers/maas
+    dsl: !include-jinja2: ws-machine-listing-spike-rebase.groovy
+

Follow ups