diff --git a/jobs/debian/folders.yaml b/jobs/debian/folders.yaml
--- a/jobs/debian/folders.yaml
+++ b/jobs/debian/folders.yaml
@@ -35,3 +35,15 @@
false
+
+- job:
+ name: 'debian/deps'
+ display-name: 'Debian Dependency Packages'
+ project-type: folder
+ raw:
+ xml: |
+
+
+ false
+
+
diff --git a/jobs/dependency-packages.yaml b/jobs/dependency-packages.yaml
new file mode 100644
--- /dev/null
+++ b/jobs/dependency-packages.yaml
@@ -0,0 +1,14 @@
+- job-group:
+ name: 'dependency-jobs-{name}'
+ jobs:
+ - "debian/deps/{name}"
+ - "debian/deps/{name}/incoming-tag"
+ - "debian/deps/{name}/gbp-buildpackage"
+ - "debian/deps/{name}/automatic-backport"
+
+- project:
+ name: XPMK
+ display-name: python3-mirakuru
+ pkg: mirakuru
+ jobs:
+ - 'dependency-jobs-{name}'
diff --git a/jobs/templates/debian/automatic-backport.yaml b/jobs/templates/debian/automatic-backport.yaml
--- a/jobs/templates/debian/automatic-backport.yaml
+++ b/jobs/templates/debian/automatic-backport.yaml
@@ -1,4 +1,4 @@
-- job-template:
+- job-template: &automatic_backport
name: 'debian/packages/{name}/automatic-backport'
description: |
Backport Debian package to the given release
@@ -37,3 +37,7 @@
default: false
dsl:
!include-raw: automatic-backport.groovy
+
+- job-template:
+ name: 'debian/deps/{name}/automatic-backport'
+ <<: *automatic_backport
diff --git a/jobs/templates/debian/folder.yaml b/jobs/templates/debian/folder.yaml
--- a/jobs/templates/debian/folder.yaml
+++ b/jobs/templates/debian/folder.yaml
@@ -3,3 +3,7 @@
project-type: folder
display-name: '{display-name}'
+- job-template:
+ name: 'debian/deps/{name}'
+ project-type: folder
+ display-name: '{display-name}'
diff --git a/jobs/templates/debian/gbp-buildpackage.groovy b/jobs/templates/debian/gbp-buildpackage.groovy
--- a/jobs/templates/debian/gbp-buildpackage.groovy
+++ b/jobs/templates/debian/gbp-buildpackage.groovy
@@ -9,6 +9,8 @@
def upload_target = "${{repo_path}}/incoming"
def repo_command = "umask 002; reprepro -vb ${{repo_path}} processincoming incoming"
+def backport_job = '/' + (currentBuild.fullProjectName.split('/')[0..-2] + ['automatic-backport']).join('/')
+
pipeline {{
agent {{ label 'debian' }}
environment {{
@@ -245,7 +247,7 @@
beforeAgent true
expression {{ changelog_distribution != 'UNRELEASED' }}
expression {{ params.BACKPORT_ON_SUCCESS }}
- expression {{ jobExists('/debian/packages/{name}/automatic-backport') }}
+ expression {{ jobExists(backport_job) }}
}}
steps {{
script {{
@@ -254,7 +256,7 @@
if (src_suite == changelog_distribution) {{
build(
- job: '/debian/packages/{name}/automatic-backport',
+ job: backport_job,
parameters: [
string(name: 'GIT_TAG', value: params.GIT_REVISION),
string(name: 'SOURCE', value: src_suite),
diff --git a/jobs/templates/debian/gbp-buildpackage.yaml b/jobs/templates/debian/gbp-buildpackage.yaml
--- a/jobs/templates/debian/gbp-buildpackage.yaml
+++ b/jobs/templates/debian/gbp-buildpackage.yaml
@@ -1,4 +1,4 @@
-- job-template:
+- job-template: &gbp_buildpackage
name: 'debian/packages/{name}/gbp-buildpackage'
description: |
Build Debian package
@@ -59,3 +59,6 @@
dsl:
!include-raw: gbp-buildpackage.groovy
+- job-template:
+ name: 'debian/deps/{name}/gbp-buildpackage'
+ <<: *gbp_buildpackage
diff --git a/jobs/templates/dependency-incoming-tag.groovy b/jobs/templates/dependency-incoming-tag.groovy
new file mode 100644
--- /dev/null
+++ b/jobs/templates/dependency-incoming-tag.groovy
@@ -0,0 +1,41 @@
+pipeline {{
+ agent none
+ stages {{
+ stage('Refresh tag list') {{
+ agent any
+ steps {{
+ checkout([
+ $class: 'GitSCM',
+ userRemoteConfigs: [[
+ url: 'https://forge.softwareheritage.org/source/{display-name}.git',
+ ]],
+ branches: [[
+ name: params.GIT_TAG,
+ ]],
+ browser: [
+ $class: 'Phabricator',
+ repo: '{display-name}',
+ repoUrl: 'https://forge.softwareheritage.org/',
+ ],
+ ])
+ }}
+ }}
+ stage('Build Debian package') {{
+ when {{
+ expression {{ params.GIT_TAG ==~ /debian\/.*/ }}
+ expression {{ !(params.GIT_TAG ==~ /debian\/upstream\/.*/) }}
+ expression {{ jobExists('/debian/deps/{name}/gbp-buildpackage') }}
+ }}
+ steps {{
+ build(
+ job: '/debian/deps/{name}/gbp-buildpackage',
+ parameters: [
+ string(name: 'GIT_REVISION', value: params.GIT_TAG),
+ booleanParam(name: 'DO_UPLOAD', value: true),
+ ],
+ wait: false,
+ )
+ }}
+ }}
+ }}
+}}
diff --git a/jobs/templates/incoming-tag.yaml b/jobs/templates/incoming-tag.yaml
--- a/jobs/templates/incoming-tag.yaml
+++ b/jobs/templates/incoming-tag.yaml
@@ -1,4 +1,4 @@
-- job-template:
+- job-template: &incoming_tag
name: "{name}/incoming-tag"
display-name: Incoming tag
project-type: pipeline
@@ -14,3 +14,9 @@
selectedValue: TOP
dsl:
!include-raw: incoming-tag.groovy
+
+- job-template:
+ name: "debian/deps/{name}/incoming-tag"
+ dsl:
+ !include-raw: dependency-incoming-tag.groovy
+ <<: *incoming_tag