Skip to content

chore: don't use JENKINS_REPO for tags and publication#2193

Draft
lemeurherve wants to merge 3 commits intojenkinsci:masterfrom
lemeurherve:publish-to-github-registry-too_2026-01-11
Draft

chore: don't use JENKINS_REPO for tags and publication#2193
lemeurherve wants to merge 3 commits intojenkinsci:masterfrom
lemeurherve:publish-to-github-registry-too_2026-01-11

Conversation

@lemeurherve
Copy link
Member

@lemeurherve lemeurherve commented Jan 11, 2026

This change removes the use of JENKINS_REPO used in tags generation and publication in profit of DOCKERHUB_REGISTRY/CONTAINER_ORGANISATION/CONTAINER_REPOSITORY so we can publish on other registries as well.

For that, it renames DOCKERHUB_ORGANISATION & DOCKERHUB_REPO to CONTAINER_ORGANISATION& CONTAINER_REPOSITORY and REGISTRY to DOCKERHUB_REGISTRY (more explicit), and replace the use of JENKINS_REPO with DOCKERHUB_ORGANISATION/DOCKERHUB_REPOSITORY in docker bake file, ./ci/publish.sh publication script, and HACKING.md documentation.

Preliminary pull request before the one allowing publication in multiple docker registries (only allowing, not actually publishing yet cf #1140 (comment))

Related:

Testing done:

$ docker login
$ export CONTAINER_ORGANISATION=hlemeur

$ JENKINS_VERSION=2.528.3 ./.ci/publish.sh
Using the following settings:
* DOCKERHUB_REGISTRY: docker.io
* CONTAINER_ORGANISATION: hlemeur
* CONTAINER_REPOSITORY: jenkins
* JENKINS_VERSION: 2.528.3
* WAR_SHA: bfa31f1e3aacebb5bce3d5076c73df97bf0c0567eeb8d8738f54f6bac48abd74
* COMMIT_SHA: c5e4d807f8ec05a3f4c845e08869580877dcc570
* LATEST_WEEKLY: false
* LATEST_LTS: true
<snip>

$ docker inspect hlemeur/jenkins:2.528.3-lts
[
    {
        "Id": "sha256:1825aafdea6e58204b7eb323774c8c4e574318e0d18fb7bf27e0529abcb1b1ef",
        "RepoTags": [
            "hlemeur/jenkins:2.528.3",
            "hlemeur/jenkins:2.528.3-jdk21",
            "hlemeur/jenkins:2.528.3-lts",
            "hlemeur/jenkins:2.528.3-lts-jdk21",
            "hlemeur/jenkins:lts",
            "hlemeur/jenkins:lts-jdk21"
        ],
        "RepoDigests": [
            "hlemeur/jenkins@sha256:1825aafdea6e58204b7eb323774c8c4e574318e0d18fb7bf27e0529abcb1b1ef"
        ],
        "Comment": "buildkit.dockerfile.v0",
        "Created": "2026-01-11T13:48:33.84995609Z",
        "Config": {
            "User": "jenkins",
            "ExposedPorts": {
                "50000/tcp": {},
                "8080/tcp": {}
            },
            "Env": [
                "PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "LANG=C.UTF-8",
                "JENKINS_HOME=/var/jenkins_home",
                "JENKINS_SLAVE_AGENT_PORT=50000",
                "REF=/usr/share/jenkins/ref",
                "JENKINS_VERSION=2.528.3",
                "JENKINS_UC=https://updates.jenkins.io",
                "JENKINS_UC_EXPERIMENTAL=https://updates.jenkins.io/experimental",
                "JENKINS_INCREMENTALS_REPO_MIRROR=https://repo.jenkins-ci.org/incrementals",
                "COPY_REFERENCE_FILE_LOG=/var/jenkins_home/copy_reference_file.log",
                "JAVA_HOME=/opt/java/openjdk"
            ],
            "Entrypoint": [
                "/usr/bin/tini",
                "--",
                "/usr/local/bin/jenkins.sh"
            ],
            "Volumes": {
                "/var/jenkins_home": {}
            },
            "Labels": {
                "org.opencontainers.image.description": "The Jenkins Continuous Integration and Delivery server",
                "org.opencontainers.image.licenses": "MIT",
                "org.opencontainers.image.revision": "a0ab3fa020046a99ad7d9a49104cbaac4685e3b0",
                "org.opencontainers.image.source": "https://github.com/jenkinsci/docker",
                "org.opencontainers.image.title": "Official Jenkins Docker image",
                "org.opencontainers.image.url": "https://www.jenkins.io/",
                "org.opencontainers.image.vendor": "Jenkins project",
                "org.opencontainers.image.version": "2.528.3"
            }
        },
        "Architecture": "arm64",
        "Os": "linux",
        "Size": 288690242,
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:4f9114eeb1e46da35d3a29b063ddfa69a0447888dd07117de77ddd565c54fb27",
                "sha256:4dccb090d7492f51e5752c94b2a4311cd1351cef18f05b5737f7138991e64906",
                "sha256:c2ff46607cfe9995b9e5310982ea95756ac9635f90b05db4c55415ef18dbeaf4",
                "sha256:38680db6fceda2720f91d241e9ffc1fe18bb5e80971d314de774ae8e05665e42",
                "sha256:cb337ba5f4bc7a25e13ee6f0e941f3c9ee55eae776e99c1105487c71c9f47748",
                "sha256:ec3cc3a9bb43919215cf5d39c940080aeaf993bb1a8e47a5ad28eff09eef3024",
                "sha256:b4d00230176fd3b195b4ac37dea53b8a3390decaa1238116d1c892f6320217de",
                "sha256:9dfb4b1bfc5bb8338db02c7d439500644c444502e27826aa3dd1bb578f758aa6",
                "sha256:5b5eb2fcc1a23df2a5a600d55f163ee5eea9fa2462385c7f8a6edc423add02c2",
                "sha256:9d6ca408160484d633fe9dede9a03e17f740a06a258db903a55520b122f4e679",
                "sha256:9a285ad710f7519f7868afd7bca59b59ba22e36627f9cfddebf61f343736d8c3",
                "sha256:3f83631eada5c1a69cb61ac5c9b3eef62f0bc9f61ddb39eec6e604fcb001d2ee"
            ]
        },
        "Metadata": {
            "LastTagTime": "2026-01-11T14:07:33.264826923Z"
        },
        "Descriptor": {
            "mediaType": "application/vnd.oci.image.index.v1+json",
            "digest": "sha256:1825aafdea6e58204b7eb323774c8c4e574318e0d18fb7bf27e0529abcb1b1ef",
            "size": 3117
        }
    }
]

Submitter checklist

  • Make sure you are opening from a topic/feature/bugfix branch (right side) and not your main branch!
  • Ensure that the pull request title represents the desired changelog entry
  • Please describe what you did
  • Link to relevant issues in GitHub or Jira
  • Link to relevant pull requests, esp. upstream and downstream changes
  • Ensure you have provided tests that demonstrate the feature works or the issue is fixed

…RHUB_REPOSITORY`

This change removes the use of `JENKINS_REPO` during publication in profit of `DOCKERHUB_ORGANISATION/DOCKERHUB_REPOSITORY`
so we can publish on other registries as well.

For that, it renames `DOCKERHUB_REPO` to `DOCKERHUB_REPOSITORY` and `REGISTRY` to `DOCKERHUB_REGISTRY` (more explicit),
and replace the use of `JENKINS_REPO` with `DOCKERHUB_ORGANISATION/DOCKERHUB_REPOSITORY` in docker bake file,
./ci/publish.sh publication script, and HACKING.md documentation.

Testing done:
```
$ docker login
$ export DOCKERHUB_ORGANISATION=hlemeur
$ JENKINS_VERSION=2.528.3 ./ci/publish.sh -d -n
$ JENKINS_VERSION=2.528.3 ./ci/publish.sh
$ docker inspect hlemeur/jenkins:2.528.3-lts
[
    {
        "Id": "sha256:1825aafdea6e58204b7eb323774c8c4e574318e0d18fb7bf27e0529abcb1b1ef",
        "RepoTags": [
            "hlemeur/jenkins:2.528.3",
            "hlemeur/jenkins:2.528.3-jdk21",
            "hlemeur/jenkins:2.528.3-lts",
            "hlemeur/jenkins:2.528.3-lts-jdk21",
            "hlemeur/jenkins:lts",
            "hlemeur/jenkins:lts-jdk21"
        ],
        "RepoDigests": [
            "hlemeur/jenkins@sha256:1825aafdea6e58204b7eb323774c8c4e574318e0d18fb7bf27e0529abcb1b1ef"
        ],
        "Comment": "buildkit.dockerfile.v0",
        "Created": "2026-01-11T13:48:33.84995609Z",
        "Config": {
            "User": "jenkins",
            "ExposedPorts": {
                "50000/tcp": {},
                "8080/tcp": {}
            },
            "Env": [
                "PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "LANG=C.UTF-8",
                "JENKINS_HOME=/var/jenkins_home",
                "JENKINS_SLAVE_AGENT_PORT=50000",
                "REF=/usr/share/jenkins/ref",
                "JENKINS_VERSION=2.528.3",
                "JENKINS_UC=https://updates.jenkins.io",
                "JENKINS_UC_EXPERIMENTAL=https://updates.jenkins.io/experimental",
                "JENKINS_INCREMENTALS_REPO_MIRROR=https://repo.jenkins-ci.org/incrementals",
                "COPY_REFERENCE_FILE_LOG=/var/jenkins_home/copy_reference_file.log",
                "JAVA_HOME=/opt/java/openjdk"
            ],
            "Entrypoint": [
                "/usr/bin/tini",
                "--",
                "/usr/local/bin/jenkins.sh"
            ],
            "Volumes": {
                "/var/jenkins_home": {}
            },
            "Labels": {
                "org.opencontainers.image.description": "The Jenkins Continuous Integration and Delivery server",
                "org.opencontainers.image.licenses": "MIT",
                "org.opencontainers.image.revision": "a0ab3fa020046a99ad7d9a49104cbaac4685e3b0",
                "org.opencontainers.image.source": "https://github.com/jenkinsci/docker",
                "org.opencontainers.image.title": "Official Jenkins Docker image",
                "org.opencontainers.image.url": "https://www.jenkins.io/",
                "org.opencontainers.image.vendor": "Jenkins project",
                "org.opencontainers.image.version": "2.528.3"
            }
        },
        "Architecture": "arm64",
        "Os": "linux",
        "Size": 288690242,
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:4f9114eeb1e46da35d3a29b063ddfa69a0447888dd07117de77ddd565c54fb27",
                "sha256:4dccb090d7492f51e5752c94b2a4311cd1351cef18f05b5737f7138991e64906",
                "sha256:c2ff46607cfe9995b9e5310982ea95756ac9635f90b05db4c55415ef18dbeaf4",
                "sha256:38680db6fceda2720f91d241e9ffc1fe18bb5e80971d314de774ae8e05665e42",
                "sha256:cb337ba5f4bc7a25e13ee6f0e941f3c9ee55eae776e99c1105487c71c9f47748",
                "sha256:ec3cc3a9bb43919215cf5d39c940080aeaf993bb1a8e47a5ad28eff09eef3024",
                "sha256:b4d00230176fd3b195b4ac37dea53b8a3390decaa1238116d1c892f6320217de",
                "sha256:9dfb4b1bfc5bb8338db02c7d439500644c444502e27826aa3dd1bb578f758aa6",
                "sha256:5b5eb2fcc1a23df2a5a600d55f163ee5eea9fa2462385c7f8a6edc423add02c2",
                "sha256:9d6ca408160484d633fe9dede9a03e17f740a06a258db903a55520b122f4e679",
                "sha256:9a285ad710f7519f7868afd7bca59b59ba22e36627f9cfddebf61f343736d8c3",
                "sha256:3f83631eada5c1a69cb61ac5c9b3eef62f0bc9f61ddb39eec6e604fcb001d2ee"
            ]
        },
        "Metadata": {
            "LastTagTime": "2026-01-11T14:07:33.264826923Z"
        },
        "Descriptor": {
            "mediaType": "application/vnd.oci.image.index.v1+json",
            "digest": "sha256:1825aafdea6e58204b7eb323774c8c4e574318e0d18fb7bf27e0529abcb1b1ef",
            "size": 3117
        }
    }
]
```
@lemeurherve lemeurherve requested a review from a team as a code owner January 11, 2026 17:04
@lemeurherve lemeurherve changed the title chore: don't use JENKINS_REPO chore: don't use JENKINS_REPO for tags and publication Jan 11, 2026
@lemeurherve lemeurherve marked this pull request as draft January 11, 2026 18:33
Copy link
Member

@timja timja left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think these names would be better

@lemeurherve lemeurherve marked this pull request as ready for review January 15, 2026 20:14
@lemeurherve lemeurherve marked this pull request as draft February 18, 2026 14:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants