Skip to content

Commit ce8e375

Browse files
Bot Updating Templated Files
1 parent 1545d2d commit ce8e375

File tree

1 file changed

+109
-32
lines changed

1 file changed

+109
-32
lines changed

Jenkinsfile

Lines changed: 109 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ pipeline {
1414
environment {
1515
BUILDS_DISCORD=credentials('build_webhook_url')
1616
GITHUB_TOKEN=credentials('498b4638-2d02-4ce5-832d-8a57d01d97ab')
17+
GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0')
18+
GITLAB_NAMESPACE=credentials('gitlab-namespace-id')
1719
BUILD_VERSION_ARG = 'OS'
1820
LS_USER = 'linuxserver'
1921
LS_REPO = 'docker-baseimage-alpine'
@@ -124,6 +126,9 @@ pipeline {
124126
steps {
125127
script{
126128
env.IMAGE = env.DOCKERHUB_IMAGE
129+
env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME
130+
env.GITHUBIMAGE = 'docker.pkg.github.com/' + env.LS_USER + '/' + env.LS_REPO + '/' + env.CONTAINER_NAME
131+
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME
127132
if (env.MULTIARCH == 'true') {
128133
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
129134
} else {
@@ -142,6 +147,9 @@ pipeline {
142147
steps {
143148
script{
144149
env.IMAGE = env.DEV_DOCKERHUB_IMAGE
150+
env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME
151+
env.GITHUBIMAGE = 'docker.pkg.github.com/' + env.LS_USER + '/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME
152+
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME
145153
if (env.MULTIARCH == 'true') {
146154
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
147155
} else {
@@ -160,6 +168,9 @@ pipeline {
160168
steps {
161169
script{
162170
env.IMAGE = env.PR_DOCKERHUB_IMAGE
171+
env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME
172+
env.GITHUBIMAGE = 'docker.pkg.github.com/' + env.LS_USER + '/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
173+
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
163174
if (env.MULTIARCH == 'true') {
164175
env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
165176
} else {
@@ -267,6 +278,26 @@ pipeline {
267278
}
268279
}
269280
}
281+
/* #######################
282+
GitLab Mirroring
283+
####################### */
284+
// Ping into Gitlab to mirror this repo and have a registry endpoint
285+
stage("GitLab Mirror"){
286+
when {
287+
environment name: 'EXIT_STATUS', value: ''
288+
}
289+
steps{
290+
sh '''curl -H "Content-Type: application/json" -H "Private-Token: ${GITLAB_TOKEN}" -X POST https://gitlab.com/api/v4/projects \
291+
-d '{"namespace_id":'${GITLAB_NAMESPACE}',\
292+
"name":"'${LS_REPO}'",
293+
"mirror":true,\
294+
"import_url":"https://github.com/linuxserver/'${LS_REPO}'.git",\
295+
"issues_access_level":"disabled",\
296+
"merge_requests_access_level":"disabled",\
297+
"repository_access_level":"enabled",\
298+
"visibility":"public"}' '''
299+
}
300+
}
270301
/* ###############
271302
Build Container
272303
############### */
@@ -498,19 +529,32 @@ pipeline {
498529
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
499530
usernameVariable: 'DOCKERUSER',
500531
passwordVariable: 'DOCKERPASS'
532+
],
533+
[
534+
$class: 'UsernamePasswordMultiBinding',
535+
credentialsId: 'Quay.io-Robot',
536+
usernameVariable: 'QUAYUSER',
537+
passwordVariable: 'QUAYPASS'
501538
]
502539
]) {
503-
echo 'Logging into DockerHub'
504540
sh '''#! /bin/bash
505-
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
541+
set -e
542+
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
543+
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
544+
echo $GITHUB_TOKEN | docker login docker.pkg.github.com -u LinuxServer-CI --password-stdin
545+
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
546+
for PUSHIMAGE in "${QUAYIMAGE}" "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
547+
docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG}
548+
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:3.10
549+
docker push ${PUSHIMAGE}:3.10
550+
docker push ${PUSHIMAGE}:${META_TAG}
551+
done
552+
for DELETEIMAGE in "${QUAYIMAGE}" "${GITHUBIMAGE}" "{GITLABIMAGE}" "${IMAGE}"; do
553+
docker rmi \
554+
${DELETEIMAGE}:${META_TAG} \
555+
${DELETEIMAGE}:3.10 || :
556+
done
506557
'''
507-
sh "docker tag ${IMAGE}:${META_TAG} ${IMAGE}:3.10"
508-
sh "docker push ${IMAGE}:3.10"
509-
sh "docker push ${IMAGE}:${META_TAG}"
510-
sh '''docker rmi \
511-
${IMAGE}:${META_TAG} \
512-
${IMAGE}:3.10 || :'''
513-
514558
}
515559
}
516560
}
@@ -527,37 +571,67 @@ pipeline {
527571
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
528572
usernameVariable: 'DOCKERUSER',
529573
passwordVariable: 'DOCKERPASS'
574+
],
575+
[
576+
$class: 'UsernamePasswordMultiBinding',
577+
credentialsId: 'Quay.io-Robot',
578+
usernameVariable: 'QUAYUSER',
579+
passwordVariable: 'QUAYPASS'
530580
]
531581
]) {
532582
sh '''#! /bin/bash
533-
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
534-
'''
535-
sh '''#! /bin/bash
583+
set -e
584+
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
585+
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
586+
echo $GITHUB_TOKEN | docker login docker.pkg.github.com -u LinuxServer-CI --password-stdin
587+
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
536588
if [ "${CI}" == "false" ]; then
537589
docker pull lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
538590
docker pull lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
539591
docker tag lsiodev/buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
540592
docker tag lsiodev/buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
541-
fi'''
542-
sh "docker tag ${IMAGE}:amd64-${META_TAG} ${IMAGE}:amd64-3.10"
543-
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ${IMAGE}:arm32v7-3.10"
544-
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ${IMAGE}:arm64v8-3.10"
545-
sh "docker push ${IMAGE}:amd64-${META_TAG}"
546-
sh "docker push ${IMAGE}:arm32v7-${META_TAG}"
547-
sh "docker push ${IMAGE}:arm64v8-${META_TAG}"
548-
sh "docker push ${IMAGE}:amd64-3.10"
549-
sh "docker push ${IMAGE}:arm32v7-3.10"
550-
sh "docker push ${IMAGE}:arm64v8-3.10"
551-
sh "docker manifest push --purge ${IMAGE}:3.10 || :"
552-
sh "docker manifest create ${IMAGE}:3.10 ${IMAGE}:amd64-3.10 ${IMAGE}:arm32v7-3.10 ${IMAGE}:arm64v8-3.10"
553-
sh "docker manifest annotate ${IMAGE}:3.10 ${IMAGE}:arm32v7-3.10 --os linux --arch arm"
554-
sh "docker manifest annotate ${IMAGE}:3.10 ${IMAGE}:arm64v8-3.10 --os linux --arch arm64 --variant v8"
555-
sh "docker manifest push --purge ${IMAGE}:${META_TAG} || :"
556-
sh "docker manifest create ${IMAGE}:${META_TAG} ${IMAGE}:amd64-${META_TAG} ${IMAGE}:arm32v7-${META_TAG} ${IMAGE}:arm64v8-${META_TAG}"
557-
sh "docker manifest annotate ${IMAGE}:${META_TAG} ${IMAGE}:arm32v7-${META_TAG} --os linux --arch arm"
558-
sh "docker manifest annotate ${IMAGE}:${META_TAG} ${IMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8"
559-
sh "docker manifest push --purge ${IMAGE}:3.10"
560-
sh "docker manifest push --purge ${IMAGE}:${META_TAG}"
593+
fi
594+
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}"; do
595+
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
596+
docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
597+
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
598+
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-3.10
599+
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-3.10
600+
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-3.10
601+
docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
602+
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
603+
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
604+
docker push ${MANIFESTIMAGE}:amd64-3.10
605+
docker push ${MANIFESTIMAGE}:arm32v7-3.10
606+
docker push ${MANIFESTIMAGE}:arm64v8-3.10
607+
docker manifest push --purge ${MANIFESTIMAGE}:3.10 || :
608+
docker manifest create ${MANIFESTIMAGE}:3.10 ${MANIFESTIMAGE}:amd64-3.10 ${MANIFESTIMAGE}:arm32v7-3.10 ${MANIFESTIMAGE}:arm64v8-3.10
609+
docker manifest annotate ${MANIFESTIMAGE}:3.10 ${MANIFESTIMAGE}:arm32v7-3.10 --os linux --arch arm
610+
docker manifest annotate ${MANIFESTIMAGE}:3.10 ${MANIFESTIMAGE}:arm64v8-3.10 --os linux --arch arm64 --variant v8
611+
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || :
612+
docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
613+
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} --os linux --arch arm
614+
docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8
615+
docker manifest push --purge ${MANIFESTIMAGE}:3.10
616+
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
617+
done
618+
for LEGACYIMAGE in "${QUAYIMAGE}" "${GITHUBIMAGE}"; do
619+
docker tag ${IMAGE}:amd64-${META_TAG} ${LEGACYIMAGE}:amd64-${META_TAG}
620+
docker tag ${IMAGE}:arm32v7-${META_TAG} ${LEGACYIMAGE}:arm32v7-${META_TAG}
621+
docker tag ${IMAGE}:arm64v8-${META_TAG} ${LEGACYIMAGE}:arm64v8-${META_TAG}
622+
docker tag ${LEGACYIMAGE}:amd64-${META_TAG} ${LEGACYIMAGE}:3.10
623+
docker tag ${LEGACYIMAGE}:amd64-${META_TAG} ${LEGACYIMAGE}:${META_TAG}
624+
docker tag ${LEGACYIMAGE}:arm32v7-${META_TAG} ${LEGACYIMAGE}:arm32v7-3.10
625+
docker tag ${LEGACYIMAGE}:arm64v8-${META_TAG} ${LEGACYIMAGE}:arm64v8-3.10
626+
docker push ${LEGACYIMAGE}:amd64-${META_TAG}
627+
docker push ${LEGACYIMAGE}:arm32v7-${META_TAG}
628+
docker push ${LEGACYIMAGE}:arm64v8-${META_TAG}
629+
docker push ${LEGACYIMAGE}:3.10
630+
docker push ${LEGACYIMAGE}:${META_TAG}
631+
docker push ${LEGACYIMAGE}:arm32v7-3.10
632+
docker push ${LEGACYIMAGE}:arm64v8-3.10
633+
done
634+
'''
561635
}
562636
}
563637
}
@@ -652,5 +726,8 @@ pipeline {
652726
}
653727
}
654728
}
729+
cleanup {
730+
cleanWs()
731+
}
655732
}
656733
}

0 commit comments

Comments
 (0)