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