Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F9696538
D9000.id32458.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
5 KB
Subscribers
None
D9000.id32458.diff
View Options
diff --git a/jobs/maven-indexer-exporter.yml b/jobs/maven-indexer-exporter.yml
new file mode 100644
--- /dev/null
+++ b/jobs/maven-indexer-exporter.yml
@@ -0,0 +1,40 @@
+- job-template: &build_and_push
+ name: "{name}/build-and-push"
+ description: Build the docker image and publish it to a registry
+ node: built-in
+ project-type: pipeline
+ auth-token: "ph4br1cat0r"
+ dsl: !include-jinja2: templates/swh-build-docker-image.groovy.j2
+
+ parameters:
+ - string:
+ name: TAG
+ description: Tag to build the image and then use as name
+
+- job-template:
+ name: "{name}/gitlab-build-and-push"
+ description: Build the docker image and publish it to a registry (GitLab)
+ auth-token:
+ parameters:
+ gitlab_project: true
+ gitlab_project_name: swh/devel/fixtures/maven-index-exporter
+ properties:
+ - gitlab:
+ connection: "{gitlab_connection_name}"
+ triggers:
+ - gitlab:
+ trigger-push: true
+ trigger-merge-request: false
+ add-ci-message: true
+ # secret jenkins token is generated when executing tox
+ secret-token: !include-raw: jobs/templates/jenkins-token
+ <<: *build_and_push
+
+- project:
+ name: DLSMAVEXP
+ display-name: maven-index-exporter
+ repo_name: maven-index-exporter
+ jobs:
+ - "{name}"
+ - "{name}/build-and-push"
+ - "{name}/gitlab-build-and-push"
diff --git a/jobs/swh-build-docker-image.yml b/jobs/swh-build-docker-image.yml
deleted file mode 100644
--- a/jobs/swh-build-docker-image.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-- job-template:
- name: "{name}/build-and-push"
- description: Build the docker image and publish it to a registry
- node: built-in
- project-type: pipeline
- auth-token: 'ph4br1cat0r'
- dsl:
- !include-jinja2: templates/swh-build-docker-image.groovy.j2
-
- parameters:
- - string:
- name: TAG
- description: Tag to build the image and then use as name
-
-- project:
- name: DLSMAVEXP
- display-name: maven-index-exporter
- repo_name: maven-index-exporter
- jobs:
- - "{name}"
- - "{name}/build-and-push"
diff --git a/jobs/templates/swh-build-docker-image.groovy.j2 b/jobs/templates/swh-build-docker-image.groovy.j2
--- a/jobs/templates/swh-build-docker-image.groovy.j2
+++ b/jobs/templates/swh-build-docker-image.groovy.j2
@@ -2,7 +2,13 @@
// Normalize to "latest" if we build from head commit (main or master)
// Otherwise, keep the transmitted tag
+{%- if gitlab_project %}
+// remove refs/tags/ prefix from source branch
+def tag = env.gitlabSourceBranch.substring(10)
+{%- else %}
def tag = params.TAG
+{%- endif %}
+
def tag_name = ( tag == "origin/main" || tag == "origin/master" ) ? "latest" : tag
// The following is configured in jenkins manually:
@@ -27,35 +33,67 @@
// - push: publish to the registry
// TAG, REGISTRY_URL must be provided
-node('built-in') {
- stage ('Pre-cleanup') {
- cleanWs()
- }
- stage('Checkout Repository') {
- checkout([
- $class: 'GitSCM',
- branches: [[name: tag]],
- userRemoteConfigs: [[
- url: "https://forge.softwareheritage.org/source/${repo_name}/",
- ]],
- ])
- }
- def dockerImage
- stage ('Build image') {
- sh "make build TAG=${tag} IMAGE_LABEL=${image_label}"
- }
- stage ('Push image') {
- // first make sure the image is ok
- sh "make test TAG=${tag}"
- // then publish it
- docker.withRegistry("https://${registry_url}", dockerCredentialsKeyID) {
- sh "make push TAG=${tag} REGISTRY_URL=${registry_url}"
+pipeline {
+ agent any
+ stages {
+ stage ('Pre-cleanup') {
+ steps {
+ cleanWs()
+ }
}
+ stage('Checkout Repository') {
+ steps {
+ {%- if gitlab_project %}
+ updateGitlabCommitStatus name: 'jenkins', state: 'running'
+ {%- endif %}
+ checkout([
+ $class: 'GitSCM',
+ branches: [[name: tag]],
+ userRemoteConfigs: [[
+ {%- if not gitlab_project %}
+ url: "https://forge.softwareheritage.org/source/${repo_name}/",
+ {%- else %}
+ url: "{{gitlab_url}}/{{gitlab_project_name}}"
+ {%- endif %}
+ ]],
+ ])
+ }
+ }
+ stage ('Build image') {
+ steps {
+ sh "make build TAG=${tag} IMAGE_LABEL=${image_label}"
+ }
+ }
+ stage ('Push image') {
+ steps {
+ script {
+ // first make sure the image is ok
+ sh "make test TAG=${tag}"
+ // then publish it
+ docker.withRegistry("https://${registry_url}", dockerCredentialsKeyID) {
+ sh "make push TAG=${tag} REGISTRY_URL=${registry_url}"
+ }
+ }
+ }
+ }
+ }
+ post {
always {
- // finally clean workspace
- cleanWs()
// and locally built image (resulting from the current jenkins build)
sh "make clean IMAGE_LABEL=${image_label}"
+ // finally clean workspace
+ cleanWs()
+ }
+ {%- if gitlab_project %}
+ failure {
+ updateGitlabCommitStatus name: 'jenkins', state: 'failed'
+ }
+ success {
+ updateGitlabCommitStatus name: 'jenkins', state: 'success'
+ }
+ aborted {
+ updateGitlabCommitStatus name: 'jenkins', state: 'canceled'
}
+ {%- endif %}
}
}
diff --git a/jobs/tools/setup-gitlab-webhooks.groovy.j2 b/jobs/tools/setup-gitlab-webhooks.groovy.j2
--- a/jobs/tools/setup-gitlab-webhooks.groovy.j2
+++ b/jobs/tools/setup-gitlab-webhooks.groovy.j2
@@ -32,6 +32,8 @@
true, true, false)
setupGitlabWebhook("swh/infra/swh-mirror", "DFP/gitlab-run-tests",
true, true, false)
+ setupGitlabWebhook("swh/devel/fixtures/maven-index-exporter", "DLSMAVEXP/gitlab-build-and-push",
+ false, false, true)
projects = readYaml(file: 'jobs/swh-packages.yaml')
for (project in projects) {
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Aug 17, 8:32 PM (9 h, 7 m ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3213792
Attached To
D9000: jobs: Add GitLab support for maven-index-exporter
Event Timeline
Log In to Comment