This repository has been archived by the owner on Aug 25, 2023. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
edee491
commit d18c003
Showing
1 changed file
with
73 additions
and
19 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -58,7 +58,7 @@ pipeline { | |
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/commit/' + env.GIT_COMMIT | ||
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/' | ||
env.PULL_REQUEST = env.CHANGE_ID | ||
env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.md ./.github/ISSUE_TEMPLATE/issue.feature.md ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/greetings.yml ./.github/workflows/stale.yml ./.github/workflows/package_trigger.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/external_trigger.yml ./.github/workflows/external_trigger_scheduler.yml' | ||
env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.md ./.github/ISSUE_TEMPLATE/issue.feature.md ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/stale.yml ./.github/workflows/external_trigger.yml ./.github/workflows/package_trigger.yml' | ||
} | ||
script{ | ||
env.LS_RELEASE_NUMBER = sh( | ||
|
@@ -106,7 +106,7 @@ pipeline { | |
steps{ | ||
script{ | ||
env.EXT_RELEASE = sh( | ||
script: '''curl -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases/latest | jq -r '. | .tag_name' ''', | ||
script: '''curl -H "Authorization: token ${GITHUB_TOKEN}" -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases/latest | jq -r '. | .tag_name' ''', | ||
returnStdout: true).trim() | ||
} | ||
} | ||
|
@@ -317,22 +317,24 @@ pipeline { | |
git commit -m 'Bot Updating Documentation' | ||
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git --all | ||
fi | ||
mkdir -p ${TEMPDIR}/unraid | ||
mkdir -p ${TEMPDIR}/unraid | ||
git clone https://github.com/linuxserver/docker-templates.git ${TEMPDIR}/unraid/docker-templates | ||
git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates | ||
if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-icon.png ]]; then | ||
sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-icon.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | ||
if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then | ||
sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-logo.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | ||
fi | ||
if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -f ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml) || ("$(md5sum ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | awk '{ print $1 }')") ]]; then | ||
cd ${TEMPDIR}/unraid/templates/ | ||
if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then | ||
echo "Image is on the ignore list, skipping Unraid template upload" | ||
echo "Image is on the ignore list, removing Unraid template" | ||
git rm unraid/${CONTAINER_NAME}.xml || : | ||
git commit -m 'Bot Removing Deprecated Unraid Template' || : | ||
else | ||
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/ | ||
cd ${TEMPDIR}/unraid/templates/ | ||
git add unraid/${CONTAINER_NAME}.xml | ||
git commit -m 'Bot Updating Unraid Template' | ||
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git --all | ||
fi | ||
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/templates.git --all | ||
fi | ||
rm -Rf ${TEMPDIR}''' | ||
script{ | ||
|
@@ -389,8 +391,21 @@ pipeline { | |
} | ||
steps { | ||
echo "Running on node: ${NODE_NAME}" | ||
sh "docker build --no-cache --pull -t ${IMAGE}:${META_TAG} \ | ||
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." | ||
sh "docker build \ | ||
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \ | ||
--label \"org.opencontainers.image.authors=linuxserver.io\" \ | ||
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-nntp2nntp/packages\" \ | ||
--label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-nntp2nntp\" \ | ||
--label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-nntp2nntp\" \ | ||
--label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \ | ||
--label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \ | ||
--label \"org.opencontainers.image.vendor=linuxserver.io\" \ | ||
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \ | ||
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \ | ||
--label \"org.opencontainers.image.title=Nntp2nntp\" \ | ||
--label \"org.opencontainers.image.description=[Nntp2nntp](https://github.com/linuxserver/nntp2nntp) proxy allow you to use your NNTP Account from multiple systems, each with own user name and password. It fully supports SSL and you can also limit the access to proxy with SSL certificates. nntp2nntp proxy is very simple and pretty fast. ## Warning Whilst we know of no nntp2nntp security issues the [upstream code](https://github.com/linuxserver/nntp2nntp) for this project has received no changes since 06.08.15 and is likely abandoned permanently. For this reason we strongly recommend you do not make this application public facing and if you must do so other layers of security and SSL should be considered an absolute bare minimum requirement. We see this proxy being used primarily on a LAN so that all the users NNTP applications can share a common set of internal credentials allowing for central managment of the upstream account e.g change provider, server, thread limits for all applications with one global config change. \" \ | ||
--no-cache --pull -t ${IMAGE}:${META_TAG} \ | ||
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." | ||
} | ||
} | ||
// Build MultiArch Docker containers for push to LS Repo | ||
|
@@ -403,8 +418,21 @@ pipeline { | |
stage('Build X86') { | ||
steps { | ||
echo "Running on node: ${NODE_NAME}" | ||
sh "docker build --no-cache --pull -t ${IMAGE}:amd64-${META_TAG} \ | ||
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." | ||
sh "docker build \ | ||
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \ | ||
--label \"org.opencontainers.image.authors=linuxserver.io\" \ | ||
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-nntp2nntp/packages\" \ | ||
--label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-nntp2nntp\" \ | ||
--label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-nntp2nntp\" \ | ||
--label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \ | ||
--label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \ | ||
--label \"org.opencontainers.image.vendor=linuxserver.io\" \ | ||
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \ | ||
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \ | ||
--label \"org.opencontainers.image.title=Nntp2nntp\" \ | ||
--label \"org.opencontainers.image.description=[Nntp2nntp](https://github.com/linuxserver/nntp2nntp) proxy allow you to use your NNTP Account from multiple systems, each with own user name and password. It fully supports SSL and you can also limit the access to proxy with SSL certificates. nntp2nntp proxy is very simple and pretty fast. ## Warning Whilst we know of no nntp2nntp security issues the [upstream code](https://github.com/linuxserver/nntp2nntp) for this project has received no changes since 06.08.15 and is likely abandoned permanently. For this reason we strongly recommend you do not make this application public facing and if you must do so other layers of security and SSL should be considered an absolute bare minimum requirement. We see this proxy being used primarily on a LAN so that all the users NNTP applications can share a common set of internal credentials allowing for central managment of the upstream account e.g change provider, server, thread limits for all applications with one global config change. \" \ | ||
--no-cache --pull -t ${IMAGE}:amd64-${META_TAG} \ | ||
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." | ||
} | ||
} | ||
stage('Build ARMHF') { | ||
|
@@ -417,8 +445,21 @@ pipeline { | |
sh '''#! /bin/bash | ||
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin | ||
''' | ||
sh "docker build --no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} \ | ||
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." | ||
sh "docker build \ | ||
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \ | ||
--label \"org.opencontainers.image.authors=linuxserver.io\" \ | ||
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-nntp2nntp/packages\" \ | ||
--label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-nntp2nntp\" \ | ||
--label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-nntp2nntp\" \ | ||
--label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \ | ||
--label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \ | ||
--label \"org.opencontainers.image.vendor=linuxserver.io\" \ | ||
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \ | ||
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \ | ||
--label \"org.opencontainers.image.title=Nntp2nntp\" \ | ||
--label \"org.opencontainers.image.description=[Nntp2nntp](https://github.com/linuxserver/nntp2nntp) proxy allow you to use your NNTP Account from multiple systems, each with own user name and password. It fully supports SSL and you can also limit the access to proxy with SSL certificates. nntp2nntp proxy is very simple and pretty fast. ## Warning Whilst we know of no nntp2nntp security issues the [upstream code](https://github.com/linuxserver/nntp2nntp) for this project has received no changes since 06.08.15 and is likely abandoned permanently. For this reason we strongly recommend you do not make this application public facing and if you must do so other layers of security and SSL should be considered an absolute bare minimum requirement. We see this proxy being used primarily on a LAN so that all the users NNTP applications can share a common set of internal credentials allowing for central managment of the upstream account e.g change provider, server, thread limits for all applications with one global config change. \" \ | ||
--no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} \ | ||
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." | ||
sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}" | ||
retry(5) { | ||
sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}" | ||
|
@@ -438,8 +479,21 @@ pipeline { | |
sh '''#! /bin/bash | ||
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin | ||
''' | ||
sh "docker build --no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} \ | ||
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." | ||
sh "docker build \ | ||
--label \"org.opencontainers.image.created=${GITHUB_DATE}\" \ | ||
--label \"org.opencontainers.image.authors=linuxserver.io\" \ | ||
--label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-nntp2nntp/packages\" \ | ||
--label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-nntp2nntp\" \ | ||
--label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-nntp2nntp\" \ | ||
--label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \ | ||
--label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \ | ||
--label \"org.opencontainers.image.vendor=linuxserver.io\" \ | ||
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \ | ||
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \ | ||
--label \"org.opencontainers.image.title=Nntp2nntp\" \ | ||
--label \"org.opencontainers.image.description=[Nntp2nntp](https://github.com/linuxserver/nntp2nntp) proxy allow you to use your NNTP Account from multiple systems, each with own user name and password. It fully supports SSL and you can also limit the access to proxy with SSL certificates. nntp2nntp proxy is very simple and pretty fast. ## Warning Whilst we know of no nntp2nntp security issues the [upstream code](https://github.com/linuxserver/nntp2nntp) for this project has received no changes since 06.08.15 and is likely abandoned permanently. For this reason we strongly recommend you do not make this application public facing and if you must do so other layers of security and SSL should be considered an absolute bare minimum requirement. We see this proxy being used primarily on a LAN so that all the users NNTP applications can share a common set of internal credentials allowing for central managment of the upstream account e.g change provider, server, thread limits for all applications with one global config change. \" \ | ||
--no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} \ | ||
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ." | ||
sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}" | ||
retry(5) { | ||
sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}" | ||
|
@@ -746,11 +800,11 @@ pipeline { | |
"tagger": {"name": "LinuxServer Jenkins","email": "[email protected]","date": "'${GITHUB_DATE}'"}}' ''' | ||
echo "Pushing New release for Tag" | ||
sh '''#! /bin/bash | ||
curl -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases/latest | jq '. |.body' | sed 's:^.\\(.*\\).$:\\1:' > releasebody.json | ||
curl -H "Authorization: token ${GITHUB_TOKEN}" -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases/latest | jq '. |.body' | sed 's:^.\\(.*\\).$:\\1:' > releasebody.json | ||
echo '{"tag_name":"'${META_TAG}'",\ | ||
"target_commitish": "master",\ | ||
"name": "'${META_TAG}'",\ | ||
"body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n**'${EXT_REPO}' Changes:**\\n\\n' > start | ||
"body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**'${EXT_REPO}' Changes:**\\n\\n' > start | ||
printf '","draft": false,"prerelease": false}' >> releasebody.json | ||
paste -d'\\0' start releasebody.json > releasebody.json.done | ||
curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done''' | ||
|
@@ -775,7 +829,7 @@ pipeline { | |
set -e | ||
TEMPDIR=$(mktemp -d) | ||
docker pull ghcr.io/linuxserver/jenkins-builder:latest | ||
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH="${BRANCH_NAME}" -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest | ||
docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH="${BRANCH_NAME}" -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest | ||
docker pull ghcr.io/linuxserver/readme-sync | ||
docker run --rm=true \ | ||
-e DOCKERHUB_USERNAME=$DOCKERUSER \ | ||
|