From 6c3d1269d8f6e533f9c498d412c1154c27db92b6 Mon Sep 17 00:00:00 2001
From: Antoine Lambert <anlambert@softwareheritage.org>
Date: Wed, 4 Jan 2023 17:20:12 +0100
Subject: [PATCH] jobs/tools: Add swh-jenkins-dockerfiles job for gitlab
 repository

This job rebuild the docker images used by Jenkins to run jobs.
It will be triggered on push events for the swh-jenkins-dockerfiles
repository hosted on SWH GitLab.
---
 jobs/tools/dockerfiles.yaml                | 35 ++++++++++++++++++++--
 jobs/tools/setup-gitlab-webhooks.groovy.j2 |  3 ++
 2 files changed, 35 insertions(+), 3 deletions(-)

diff --git a/jobs/tools/dockerfiles.yaml b/jobs/tools/dockerfiles.yaml
index f515625..8a64772 100644
--- a/jobs/tools/dockerfiles.yaml
+++ b/jobs/tools/dockerfiles.yaml
@@ -1,4 +1,4 @@
-- job:
+- job: &swh_jenkins_dockerfiles
     name: jenkins-tools/swh-jenkins-dockerfiles
     node: built-in
     scm:
@@ -8,8 +8,8 @@
     triggers:
       - pollscm:
           cron: "H/30 * * * *"
-      - timed: '@daily'
-    auth-token: 'ph4br1cat0r'
+      - timed: "@daily"
+    auth-token: "ph4br1cat0r"
     properties:
       - build-discarder:
           days-to-keep: 7
@@ -18,3 +18,32 @@
       - ansicolor
     builders:
       - shell: make checkrebuild all
+
+# we need a job-template to substitute gitlab_* variables
+- job-template:
+    name: jenkins-tools/{dockerfiles_job_name}
+    scm:
+      - git:
+          url: "{gitlab_url}/swh/infra/ci-cd/swh-jenkins-dockerfiles.git"
+          wipe-workspace: false
+    auth-token:
+    properties:
+      - gitlab:
+          connection: "{gitlab_connection_name}"
+    triggers:
+      - gitlab:
+          trigger-push: true
+          trigger-merge-request: true
+          add-ci-message: true
+          cancel-pending-builds-on-update: true
+          # secret jenkins token is generated when executing tox
+          secret-token: !include-raw: jobs/templates/jenkins-token
+    publishers:
+      - gitlab-notifier
+    <<: *swh_jenkins_dockerfiles
+
+- project:
+    name: gitlab-swh-jenkins-dockerfiles
+    dockerfiles_job_name: "{name}"
+    jobs:
+      - "jenkins-tools/{dockerfiles_job_name}"
diff --git a/jobs/tools/setup-gitlab-webhooks.groovy.j2 b/jobs/tools/setup-gitlab-webhooks.groovy.j2
index 467f8cc..3cbdc61 100644
--- a/jobs/tools/setup-gitlab-webhooks.groovy.j2
+++ b/jobs/tools/setup-gitlab-webhooks.groovy.j2
@@ -25,6 +25,9 @@ pipeline {
           setupGitlabWebhook("swh/infra/ci-cd/swh-jenkins-jobs",
                              "jenkins-tools/swh-jenkins-jobs-builder",
                              true, true, false)
+          setupGitlabWebhook("swh/infra/ci-cd/swh-jenkins-dockerfiles",
+                             "jenkins-tools/gitlab-swh-jenkins-dockerfiles",
+                             true, true, false)
           setupGitlabWebhook("swh/devel/swh-docs", "DDOC/gitlab-builds",
                              true, true, false)
 
-- 
GitLab