diff --git a/jobs/templates/incoming-tag.groovy b/jobs/templates/incoming-tag.groovy new file mode 100644 index 0000000..11aebe4 --- /dev/null +++ b/jobs/templates/incoming-tag.groovy @@ -0,0 +1,59 @@ +import jenkins.model.Jenkins + +@NonCPS +def job_exists(name) {{ + def instance = jenkins.model.Jenkins.instance + return instance.getItemByFullName(name) != null +}} + +pipeline {{ + agent none + stages {{ + stage('Build and upload PyPI package') {{ + when {{ + expression {{ params.GIT_TAG =~ /^v\d+(.\d+)+$/ }} + expression {{ job_exists('/{name}/pypi') }} + }} + steps {{ + build( + job: '/{name}/pypi', + parameters: [ + string(name: 'GIT_TAG', value: params.GIT_TAG), + ], + wait: false, + ) + }} + }} + stage('Debian packaging for new release') {{ + when {{ + expression {{ params.GIT_TAG =~ /^v\d+(.\d+)+$/ }} + expression {{ job_exists('/debian/packages/{name}/update-for-release') }} + }} + steps {{ + build( + job: '/debian/packages/{name}/update-for-release', + parameters: [ + string(name: 'GIT_TAG', value: params.GIT_TAG), + ], + wait: false, + ) + }} + }} + stage('Debian automatic build') {{ + when {{ + expression {{ params.GIT_TAG =~ /^debian\/.*$/ }} + expression {{ job_exists('/debian/packages/{name}/build') }} + }} + steps {{ + build( + job: '/debian/packages/{name}/build', + parameters: [ + string(name: 'GIT_TAG', value: params.GIT_TAG), + booleanParam(name: 'UPLOAD', value: true), + ], + wait: false, + ) + }} + }} + }} +}} diff --git a/jobs/templates/incoming-tag.yml b/jobs/templates/incoming-tag.yml index 74a0fee..d5a9117 100644 --- a/jobs/templates/incoming-tag.yml +++ b/jobs/templates/incoming-tag.yml @@ -1,13 +1,15 @@ - job-template: name: "{name}/incoming-tag" display-name: Incoming tag project-type: pipeline auth-token: 'ph4br1cat0r' + scm: + - git: + url: "https://forge.softwareheritage.org/source/{display-name}.git" parameters: - git-parameter: name: GIT_TAG description: git tag to process type: PT_TAG - dsl: | - pipeline {{ - }} + dsl: + !include-raw: incoming-tag.groovy