Page MenuHomeSoftware Heritage

D8057.id29072.diff
No OneTemporary

D8057.id29072.diff

diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -16,3 +16,24 @@
```
The output displays the jenkins configuration files as they will be applied on the server.
+
+# Run on docker
+
+TODO improve this part
+
+- launch jenkins
+```
+docker-compose build
+docker-compose up
+```
+- get the admin password in the logs
+- connect to localhost:8080
+- change the admin password to `admin123`
+- create a jenkins directory `jenkins-tools`
+- create a new free-style job named `job-builder` inside the `jenkins-tools` pointing this git repository
+ - configure the right branch (ci here)
+ - Add a step `Execute a script shell` with this content
+```
+tox update -- --delete-old
+```
+- save and launch \o/
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,20 @@
+version: '3'
+
+volumes:
+ jenkins_data:
+
+services:
+ jenkins:
+ image: swh-jenkins:latest
+ build:
+ context: docker
+ args:
+ DOCKER_GROUP: 998
+ volumes:
+ - jenkins_data:/var/jenkins_home
+ - /var/run/docker.sock:/var/run/docker.sock
+ environment:
+ - PLUGINS_FORCE_UPGRADE=true
+ ports:
+ - 8080:8080
+ entrypoint: /docker/entrypoint.sh
diff --git a/docker/Dockerfile b/docker/Dockerfile
new file mode 100644
--- /dev/null
+++ b/docker/Dockerfile
@@ -0,0 +1,28 @@
+FROM jenkins/jenkins:lts-jdk11
+
+USER root
+
+RUN apt-get update && apt-get -y install python3-pip && \
+ pip install tox
+
+# Adapt this group if the docker gid is not 999 on your local environment
+ARG DOCKER_GROUP 998
+
+# Install docker tools
+RUN addgroup --gid ${DOCKER_GROUP} docker && \
+ mkdir -p /etc/apt/keyrings /etc/apt/sources.list.d && \
+ apt-get update && apt-get -y install ca-certificates curl gnupg lsb-release && \
+ curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg && \
+ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list && \
+ apt-get update && \
+ apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
+
+COPY --chown=jenkins:jenkins . /docker/
+COPY jenkins_jobs.ini /etc/jenkins_jobs/jenkins_jobs.ini
+
+RUN adduser jenkins docker && \
+ chmod a+x /docker/entrypoint.sh
+
+USER jenkins
+
+ENTRYPOINT /docker/entrypoint.sh
diff --git a/docker/Readme.me b/docker/Readme.me
new file mode 100644
--- /dev/null
+++ b/docker/Readme.me
@@ -0,0 +1,6 @@
+# How to generate the plugin list
+
+```
+JENKINS_HOST=username:password@myhost.com:port
+curl -sSL "https://$JENKINS_HOST/pluginManager/api/xml?depth=1&xpath=/*/*/shortName|/*/*/version&wrapper=plugins" | perl -pe 's/.*?<shortName>([\w-]+).*?<version>([^<]+)()(<\/\w+>)+/\1 \2\n/g'|sed 's/ /:/'
+```
diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh
new file mode 100644
--- /dev/null
+++ b/docker/entrypoint.sh
@@ -0,0 +1,10 @@
+#!/bin/bash -x
+
+PLUGINS_FILE=/docker/plugins.txt
+
+if [ -f "$PLUGINS_FILE" ]; then
+ echo "Installing plugins from $PLUGINS_FILE ..."
+ jenkins-plugin-cli -f $PLUGINS_FILE
+fi
+
+/usr/bin/tini -- /usr/local/bin/jenkins.sh
diff --git a/docker/jenkins_jobs.ini b/docker/jenkins_jobs.ini
new file mode 100644
--- /dev/null
+++ b/docker/jenkins_jobs.ini
@@ -0,0 +1,14 @@
+[job_builder]
+ignore_cache=True
+keep_descriptions=False
+#include_path=.:scripts:~/git/
+#exclude=.*:manual:./development
+recursive=False
+allow_duplicates=False
+update=all
+
+[jenkins]
+user=admin
+password=admin123
+url=http://localhost:8080
+query_plugins_info=False
diff --git a/docker/plugins.txt b/docker/plugins.txt
new file mode 100644
--- /dev/null
+++ b/docker/plugins.txt
@@ -0,0 +1,165 @@
+pam-auth:1.8
+build-history-metrics-plugin:97.vdcf3aa48af8d
+resource-disposer:0.19
+pipeline-graph-analysis:195.v5812d95a_a_2f9
+token-macro:293.v283932a_0a_b_49
+publish-over-ssh:1.24
+mashup-portlets-plugin:1.1.2
+plain-credentials:1.8
+sshd:3.242.va_db_9da_b_26a_c3
+external-monitor-job:191.v363d0d1efdf8
+javax-mail-api:1.6.2-6
+mailer:414.vcc4c33714601
+sse-gateway:1.25
+pipeline-utility-steps:2.13.0
+jquery:1.12.4-1
+jnr-posix-api:3.1.7-3
+docker-java-api:3.2.13-37.vf3411c9828b9
+workflow-step-api:625.vd896b_f445a_f8
+email-ext:2.89
+pipeline-model-extensions:2.2097.v33db_b_de764b_e
+maven-plugin:3.19
+jaxb:2.3.6-1
+workflow-cps:2725.v7b_c717eb_12ce
+subversion:2.15.5
+project-build-times:1.2.1
+extended-choice-parameter:346.vd87693c5a_86c
+blueocean-pipeline-editor:1.25.5
+shiningpanda:0.24
+blueocean-config:1.25.5
+bouncycastle-api:2.26
+jira:3.7.1
+font-awesome-api:6.1.1-1
+htmlpublisher:1.30
+snakeyaml-api:1.30.1
+github-branch-source:1637.vd833b_7ca_7654
+checks-api:1.7.4
+dtkit-api:3.0.1
+pubsub-light:1.16
+lockable-resources:2.15
+workflow-durable-task-step:1146.v1a_d2e603f929
+apache-httpcomponents-client-4-api:4.5.13-1.0
+blueocean-bitbucket-pipeline:1.25.5
+jenkins-design-language:1.25.5
+project-stats-plugin:0.4
+favorite:2.4.1
+caffeine-api:2.9.3-65.v6a_47d0f4d1fe
+display-url-api:2.3.6
+docker-plugin:1.2.9
+blueocean-commons:1.25.5
+forensics-api:1.15.1
+popper-api:1.16.1-3
+blueocean-git-pipeline:1.25.5
+workflow-aggregator:581.v0c46fa_697ffd
+pipeline-stage-tags-metadata:2.2097.v33db_b_de764b_e
+blueocean-rest:1.25.5
+github:1.34.3
+prometheus:2.0.11
+plugin-util-api:2.17.0
+ssh-slaves:1.821.vd834f8a_c390e
+script-security:1175.v4b_d517d6db_f0
+trilead-api:1.57.v6e90e07157e1
+ssh-credentials:277.v95c2fec1c047
+phabricator-plugin:2.1.5
+ldap:2.10
+build-token-root:1.9
+ansicolor:1.0.1
+workflow-job:1186.v8def1a_5f3944
+mercurial:2.16.2
+credentials:1129.vef26f5df883c
+variant:1.4
+blueocean-autofavorite:1.2.5
+blueocean-events:1.25.5
+extended-read-permission:3.2
+matrix-project:771.v574584b_39e60
+blueocean-display-url:2.4.1
+okhttp-api:4.9.3-105.vb96869f8ac3a
+pipeline-build-step:2.18
+pipeline-milestone-step:101.vd572fef9d926
+antisamy-markup-formatter:2.7
+bootstrap4-api:4.6.0-5
+analysis-model-api:10.12.0
+pipeline-model-definition:2.2097.v33db_b_de764b_e
+cvs:2.19.1
+workflow-multibranch:716.vc692a_e52371b_
+bootstrap5-api:5.1.3-7
+github-api:1.303-400.v35c2d8258028
+cloudbees-disk-usage-simple:0.10
+pipeline-stage-step:293.v200037eefcd5
+blueocean-jwt:1.25.5
+docker-workflow:1.28
+ant:475.vf34069fef73c
+pipeline-stage-view:2.24
+ace-editor:1.1
+workflow-scm-step:400.v6b_89a_1317c9a_
+momentjs:1.1.1
+rebuild:1.34
+warnings-ng:9.13.0
+prism-api:1.28.0-2
+jquery3-api:3.6.0-4
+jquery-detached:1.2.1
+popper2-api:2.11.5-2
+workflow-support:820.vd1a_6cc65ef33
+workflow-basic-steps:948.v2c72a_091b_b_68
+blueocean-dashboard:1.25.5
+pipeline-model-api:2.2097.v33db_b_de764b_e
+plot:2.1.10
+blueocean:1.25.5
+cloudbees-folder:6.729.v2b_9d1a_74d673
+blueocean-pipeline-scm-api:1.25.5
+timestamper:1.18
+blueocean-rest-impl:1.25.5
+credentials-binding:523.vd859a_4b_122e6
+copyartifact:1.46.4
+blueocean-core-js:1.25.5
+pipeline-input-step:449.v77f0e8b_845c4
+git-server:1.11
+javax-activation-api:1.2.0-3
+blueocean-personalization:1.25.5
+last-changes:2.7.11
+pipeline-rest-api:2.24
+jackson2-api:2.13.3-285.vc03c0256d517
+blueocean-web:1.25.5
+junit:1119.1121.vc43d0fc45561
+git:4.11.3
+metrics:4.1.6.2
+mina-sshd-api-core:2.8.0-21.v493b_6b_db_22c6
+matrix-auth:3.1.3
+mina-sshd-api-common:2.8.0-21.v493b_6b_db_22c6
+ssh-agent:295.v9ca_a_1c7cc3a_a_
+pipeline-groovy-lib:593.va_a_fc25d520e9
+handlebars:3.0.8
+blueocean-github-pipeline:1.25.5
+compress-buildlog:1.2
+echarts-api:5.3.3-1
+cloudbees-bitbucket-branch-source:773.v4b_9b_005b_562b_
+docker-commons:1.19
+dashboard-view:2.432.va_712ce35862d
+cobertura:1.17
+command-launcher:84.v4a_97f2027398
+authentication-tokens:1.4
+branch-api:2.1046.v0ca_37783ecc5
+build-timeout:1.21
+git-client:3.11.0
+javadoc:217.v905b_86277a_2a_
+workflow-api:1164.v760c223ddb_32
+data-tables-api:1.12.1-1
+mapdb-api:1.0.9.0
+jsch:0.1.55.2
+blueocean-jira:1.25.5
+workflow-cps-global-lib:588.v576c103a_ff86
+jjwt-api:0.11.5-77.v646c772fddb_0
+publish-over:0.22
+xunit:3.1.0
+python:1.3
+windows-slaves:1.8.1
+jdk-tool:1.5
+git-parameter:0.9.17
+code-coverage-api:2.0.4
+blueocean-pipeline-api-impl:1.25.5
+ws-cleanup:0.42
+handy-uri-templates-2-api:2.1.8-22.v77d5b_75e6953
+durable-task:496.va67c6f9eefa7
+blueocean-i18n:1.25.5
+scm-api:608.vfa_f971c5a_a_e9
+structs:318.va_f3ccb_729b_71

File Metadata

Mime Type
text/plain
Expires
Sun, Aug 24, 6:04 PM (1 d, 14 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3224441

Event Timeline