Compare commits

...

68 Commits

Author SHA1 Message Date
aptalca
ecfac4d02f Merge pull request #106 from linuxserver/development-2.x
switch upstream branch to 2.x
2022-11-06 14:18:35 -05:00
LinuxServer-CI
7ca570a06a Bot Updating Package Versions 2022-11-06 08:57:12 +01:00
aptalca
18f141322d switch upstream branch to 2.x 2022-11-04 15:47:57 -04:00
LinuxServer-CI
3a3fe9dbb3 Bot Updating Package Versions 2022-10-30 02:57:19 -05:00
LinuxServer-CI
593c820bbe Bot Updating Package Versions 2022-10-23 09:58:13 +02:00
LinuxServer-CI
9d7e51f856 Bot Updating Package Versions 2022-09-25 02:57:37 -05:00
LinuxServer-CI
3cc8951594 Bot Updating Package Versions 2022-09-18 02:59:24 -05:00
LinuxServer-CI
8e94ba0a0d Bot Updating Templated Files 2022-09-18 02:57:13 -05:00
LinuxServer-CI
70d9ec45ac Bot Updating Package Versions 2022-09-11 09:56:55 +02:00
LinuxServer-CI
fec29f4fdd Bot Updating Package Versions 2022-08-28 02:57:03 -05:00
LinuxServer-CI
83ac77ba48 Bot Updating Package Versions 2022-08-21 02:57:20 -05:00
LinuxServer-CI
9a899d4f06 Bot Updating Package Versions 2022-08-14 02:57:22 -05:00
LinuxServer-CI
3a955f71ff Bot Updating Package Versions 2022-08-07 02:56:56 -05:00
LinuxServer-CI
b4b790f721 Bot Updating Package Versions 2022-07-31 02:57:18 -05:00
LinuxServer-CI
304b9c949b Bot Updating Package Versions 2022-07-24 09:57:05 +02:00
LinuxServer-CI
95aa03c53d Bot Updating Package Versions 2022-07-17 02:57:10 -05:00
LinuxServer-CI
22f248749b Bot Updating Package Versions 2022-07-10 09:56:50 +02:00
LinuxServer-CI
16ef6ef3cd Bot Updating Package Versions 2022-07-03 02:57:10 -05:00
LinuxServer-CI
6367458423 Bot Updating Package Versions 2022-06-26 02:57:39 -05:00
LinuxServer-CI
e0e7993919 Bot Updating Package Versions 2022-06-19 02:56:56 -05:00
LinuxServer-CI
a205cf8bb4 Bot Updating Package Versions 2022-06-12 09:57:07 +02:00
LinuxServer-CI
45e4f01314 Bot Updating Package Versions 2022-06-05 09:57:12 +02:00
LinuxServer-CI
340959ad0f Bot Updating Package Versions 2022-05-29 02:57:48 -05:00
LinuxServer-CI
0fe2f02d36 Bot Updating Package Versions 2022-05-22 02:57:12 -05:00
LinuxServer-CI
7dfb27ec2c Bot Updating Package Versions 2022-05-15 09:57:07 +02:00
LinuxServer-CI
20f4ad570c Bot Updating Package Versions 2022-05-08 09:58:42 +02:00
LinuxServer-CI
c0593971bd Bot Updating Templated Files 2022-05-08 09:56:34 +02:00
LinuxServer-CI
bb3a96f9ab Bot Updating Package Versions 2022-05-01 03:00:29 -05:00
LinuxServer-CI
da0a48dab1 Bot Updating Templated Files 2022-05-01 02:58:03 -05:00
LinuxServer-CI
32771ff107 Bot Updating Templated Files 2022-05-01 02:56:44 -05:00
LinuxServer-CI
3ea3d3df4c Bot Updating Package Versions 2022-04-17 02:58:15 -05:00
LinuxServer-CI
9be71b990b Bot Updating Package Versions 2022-04-10 02:57:11 -05:00
LinuxServer-CI
611156ebf0 Bot Updating Package Versions 2022-04-03 02:57:13 -05:00
LinuxServer-CI
cc09853655 Bot Updating Package Versions 2022-03-27 02:57:36 -05:00
LinuxServer-CI
fd225a8f9d Bot Updating Package Versions 2022-03-17 05:47:11 -05:00
aptalca
3802c4c492 Merge pull request #97 from linuxserver/development-fix
fix path
2022-03-13 23:31:09 -04:00
aptalca
868d392d15 fix path 2022-03-13 23:18:25 -04:00
aptalca
eff0168da5 Merge pull request #93 from linuxserver/development-search
make searchproviders.yaml user configurable
2022-03-13 22:20:49 -04:00
aptalca
71734199aa make searchproviders.yaml user configurable 2022-03-13 16:36:25 -04:00
LinuxServer-CI
a178d0cec8 Bot Updating Package Versions 2022-03-11 11:58:21 -06:00
aptalca
7565e4eca4 Merge pull request #91 from linuxserver/development-3.14
rebase to 3.14
2022-03-11 12:55:50 -05:00
aptalca
41250006aa rebase to 3.14 2022-03-11 12:32:57 -05:00
LinuxServer-CI
81623bd408 Bot Updating Package Versions 2022-03-06 08:59:27 +01:00
LinuxServer-CI
a8a6ed5c64 Bot Updating Package Versions 2022-02-27 08:57:05 +01:00
LinuxServer-CI
010b576395 Bot Updating Package Versions 2022-02-20 08:56:56 +01:00
LinuxServer-CI
daf7781c96 Bot Updating Package Versions 2022-02-13 08:57:07 +01:00
LinuxServer-CI
393232aa81 Bot Updating Package Versions 2022-02-06 08:56:58 +01:00
LinuxServer-CI
e6d1f59628 Bot Updating Package Versions 2022-01-30 08:56:56 +01:00
LinuxServer-CI
f6bc88766e Bot Updating Package Versions 2022-01-23 08:57:47 +01:00
LinuxServer-CI
82dfea350e Bot Updating Package Versions 2021-12-26 08:56:55 +01:00
LinuxServer-CI
b4bb886594 Bot Updating Package Versions 2021-12-19 09:00:04 +01:00
LinuxServer-CI
932f62a5ac Bot Updating Templated Files 2021-12-19 08:58:10 +01:00
LinuxServer-CI
8e2e6a940b Bot Updating Templated Files 2021-12-19 08:56:49 +01:00
LinuxServer-CI
864c5ea2a7 Bot Updating Package Versions 2021-11-28 08:57:06 +01:00
LinuxServer-CI
9d3824ec1b Bot Updating Package Versions 2021-11-21 08:56:53 +01:00
LinuxServer-CI
047c671b1b Bot Updating Package Versions 2021-11-07 08:57:46 +01:00
LinuxServer-CI
34a73c7c9d Bot Updating Package Versions 2021-10-31 08:57:07 +01:00
LinuxServer-CI
884eeff969 Bot Updating Package Versions 2021-10-24 09:57:18 +02:00
LinuxServer-CI
fd327c7440 Bot Updating Package Versions 2021-10-17 09:57:03 +02:00
LinuxServer-CI
1fe9dd7105 Bot Updating Package Versions 2021-10-10 09:56:49 +02:00
LinuxServer-CI
018d6fb242 Bot Updating Package Versions 2021-10-03 10:00:04 +02:00
LinuxServer-CI
17546d3448 Bot Updating Templated Files 2021-10-03 09:58:01 +02:00
LinuxServer-CI
42f2d5fe1c Bot Updating Templated Files 2021-10-03 09:56:53 +02:00
LinuxServer-CI
525385d861 Bot Updating Package Versions 2021-09-26 09:56:52 +02:00
LinuxServer-CI
83ec5dcf02 Bot Updating Package Versions 2021-09-19 09:56:45 +02:00
LinuxServer-CI
5c86bc3f36 Bot Updating Package Versions 2021-09-05 09:56:42 +02:00
LinuxServer-CI
f4a007294b Bot Updating Package Versions 2021-08-29 09:58:27 +02:00
LinuxServer-CI
1b537c40f4 Bot Updating Templated Files 2021-08-29 09:56:34 +02:00
10 changed files with 253 additions and 115 deletions

View File

@@ -18,7 +18,7 @@ jobs:
fi fi
echo "**** External trigger running off of development branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_HEIMDALL_DEVELOPMENT\". ****" echo "**** External trigger running off of development branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_HEIMDALL_DEVELOPMENT\". ****"
echo "**** Retrieving external version ****" echo "**** Retrieving external version ****"
EXT_RELEASE=$(curl -u "${{ secrets.CR_USER }}:${{ secrets.CR_PAT }}" -sX GET "https://api.github.com/repos/linuxserver/Heimdall/commits/master" | jq -r '. | .sha' | cut -c1-8) EXT_RELEASE=$(curl -u "${{ secrets.CR_USER }}:${{ secrets.CR_PAT }}" -sX GET "https://api.github.com/repos/linuxserver/Heimdall/commits/2.x" | jq -r '. | .sha' | cut -c1-8)
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then
echo "**** Can't retrieve external version, exiting ****" echo "**** Can't retrieve external version, exiting ****"
FAILURE_REASON="Can't retrieve external version for heimdall branch development" FAILURE_REASON="Can't retrieve external version for heimdall branch development"

View File

@@ -1,4 +1,4 @@
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.12 FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.14
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@@ -17,13 +17,12 @@ RUN \
php7-ctype \ php7-ctype \
php7-pdo_sqlite \ php7-pdo_sqlite \
php7-tokenizer \ php7-tokenizer \
php7-zip \ php7-zip && \
tar && \
echo "**** install heimdall ****" && \ echo "**** install heimdall ****" && \
mkdir -p \ mkdir -p \
/heimdall && \ /heimdall && \
if [ -z ${HEIMDALL_RELEASE+x} ]; then \ if [ -z ${HEIMDALL_RELEASE+x} ]; then \
HEIMDALL_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/Heimdall/commits/master" \ HEIMDALL_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/Heimdall/commits/2.x" \
| awk '/sha/{print $4;exit}' FS='[""]'); \ | awk '/sha/{print $4;exit}' FS='[""]'); \
fi && \ fi && \
curl -o \ curl -o \

View File

@@ -1,4 +1,4 @@
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.12 FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm64v8-3.14
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@@ -17,13 +17,12 @@ RUN \
php7-ctype \ php7-ctype \
php7-pdo_sqlite \ php7-pdo_sqlite \
php7-tokenizer \ php7-tokenizer \
php7-zip \ php7-zip && \
tar && \
echo "**** install heimdall ****" && \ echo "**** install heimdall ****" && \
mkdir -p \ mkdir -p \
/heimdall && \ /heimdall && \
if [ -z ${HEIMDALL_RELEASE+x} ]; then \ if [ -z ${HEIMDALL_RELEASE+x} ]; then \
HEIMDALL_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/Heimdall/commits/master" \ HEIMDALL_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/Heimdall/commits/2.x" \
| awk '/sha/{print $4;exit}' FS='[""]'); \ | awk '/sha/{print $4;exit}' FS='[""]'); \
fi && \ fi && \
curl -o \ curl -o \

View File

@@ -1,4 +1,4 @@
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm32v7-3.12 FROM ghcr.io/linuxserver/baseimage-alpine-nginx:arm32v7-3.14
# set version label # set version label
ARG BUILD_DATE ARG BUILD_DATE
@@ -17,13 +17,12 @@ RUN \
php7-ctype \ php7-ctype \
php7-pdo_sqlite \ php7-pdo_sqlite \
php7-tokenizer \ php7-tokenizer \
php7-zip \ php7-zip && \
tar && \
echo "**** install heimdall ****" && \ echo "**** install heimdall ****" && \
mkdir -p \ mkdir -p \
/heimdall && \ /heimdall && \
if [ -z ${HEIMDALL_RELEASE+x} ]; then \ if [ -z ${HEIMDALL_RELEASE+x} ]; then \
HEIMDALL_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/Heimdall/commits/master" \ HEIMDALL_RELEASE=$(curl -sX GET "https://api.github.com/repos/linuxserver/Heimdall/commits/2.x" \
| awk '/sha/{print $4;exit}' FS='[""]'); \ | awk '/sha/{print $4;exit}' FS='[""]'); \
fi && \ fi && \
curl -o \ curl -o \

141
Jenkinsfile vendored
View File

@@ -16,7 +16,8 @@ pipeline {
GITHUB_TOKEN=credentials('498b4638-2d02-4ce5-832d-8a57d01d97ab') GITHUB_TOKEN=credentials('498b4638-2d02-4ce5-832d-8a57d01d97ab')
GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0') GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0')
GITLAB_NAMESPACE=credentials('gitlab-namespace-id') GITLAB_NAMESPACE=credentials('gitlab-namespace-id')
EXT_GIT_BRANCH = 'master' SCARF_TOKEN=credentials('scarf_api_key')
EXT_GIT_BRANCH = '2.x'
EXT_USER = 'linuxserver' EXT_USER = 'linuxserver'
EXT_REPO = 'Heimdall' EXT_REPO = 'Heimdall'
CONTAINER_NAME = 'heimdall' CONTAINER_NAME = 'heimdall'
@@ -126,6 +127,30 @@ pipeline {
env.EXT_RELEASE_CLEAN = sh( env.EXT_RELEASE_CLEAN = sh(
script: '''echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g' ''', script: '''echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g' ''',
returnStdout: true).trim() returnStdout: true).trim()
def semver = env.EXT_RELEASE_CLEAN =~ /(\d+)\.(\d+)\.(\d+)/
if (semver.find()) {
env.SEMVER = "${semver[0][1]}.${semver[0][2]}.${semver[0][3]}"
} else {
semver = env.EXT_RELEASE_CLEAN =~ /(\d+)\.(\d+)(?:\.(\d+))?(.*)/
if (semver.find()) {
if (semver[0][3]) {
env.SEMVER = "${semver[0][1]}.${semver[0][2]}.${semver[0][3]}"
} else if (!semver[0][3] && !semver[0][4]) {
env.SEMVER = "${semver[0][1]}.${semver[0][2]}.${(new Date()).format('YYYYMMdd')}"
}
}
}
if (env.SEMVER != null) {
if (BRANCH_NAME != "master" && BRANCH_NAME != "main") {
env.SEMVER = "${env.SEMVER}-${BRANCH_NAME}"
}
println("SEMVER: ${env.SEMVER}")
} else {
println("No SEMVER detected")
}
} }
} }
} }
@@ -140,6 +165,7 @@ pipeline {
env.IMAGE = env.DOCKERHUB_IMAGE env.IMAGE = env.DOCKERHUB_IMAGE
env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/' + env.CONTAINER_NAME env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/' + env.CONTAINER_NAME
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') { if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-development-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-development-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-development-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER env.CI_TAGS = 'amd64-development-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-development-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-development-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} else { } else {
@@ -162,6 +188,7 @@ pipeline {
env.IMAGE = env.DEV_DOCKERHUB_IMAGE env.IMAGE = env.DEV_DOCKERHUB_IMAGE
env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/lsiodev-' + env.CONTAINER_NAME env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/lsiodev-' + env.CONTAINER_NAME
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') { if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v7-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA env.CI_TAGS = 'amd64-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v7-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
} else { } else {
@@ -184,6 +211,7 @@ pipeline {
env.IMAGE = env.PR_DOCKERHUB_IMAGE env.IMAGE = env.PR_DOCKERHUB_IMAGE
env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/lspipepr-' + env.CONTAINER_NAME env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/lspipepr-' + env.CONTAINER_NAME
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') { if (env.MULTIARCH == 'true') {
env.CI_TAGS = 'amd64-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST env.CI_TAGS = 'amd64-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-development-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
} else { } else {
@@ -325,9 +353,11 @@ pipeline {
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 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/ cd ${TEMPDIR}/unraid/templates/
if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then if grep -wq "${CONTAINER_NAME}" ${TEMPDIR}/unraid/templates/unraid/ignore.list; then
echo "Image is on the ignore list, removing Unraid template" echo "Image is on the ignore list, marking Unraid template as deprecated"
git rm unraid/${CONTAINER_NAME}.xml || : cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
git commit -m 'Bot Removing Deprecated Unraid Template' || : git add -u unraid/${CONTAINER_NAME}.xml
git mv unraid/${CONTAINER_NAME}.xml unraid/deprecated/${CONTAINER_NAME}.xml || :
git commit -m 'Bot Moving Deprecated Unraid Template' || :
else else
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/ cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml ${TEMPDIR}/unraid/templates/unraid/
git add unraid/${CONTAINER_NAME}.xml git add unraid/${CONTAINER_NAME}.xml
@@ -379,13 +409,45 @@ pipeline {
"visibility":"public"}' ''' "visibility":"public"}' '''
} }
} }
/* #######################
Scarf.sh package registry
####################### */
// Add package to Scarf.sh and set permissions
stage("Scarf.sh package registry"){
when {
branch "development"
environment name: 'EXIT_STATUS', value: ''
}
steps{
sh '''#! /bin/bash
set -e
PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/heimdall") | .uuid')
if [ -z "${PACKAGE_UUID}" ]; then
echo "Adding package to Scarf.sh"
curl -sX POST https://scarf.sh/api/v1/organizations/linuxserver-ci/packages \
-H "Authorization: Bearer ${SCARF_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"name":"linuxserver/heimdall",\
"shortDescription":"example description",\
"libraryType":"docker",\
"website":"https://github.com/linuxserver/docker-heimdall",\
"backendUrl":"https://ghcr.io/linuxserver/heimdall",\
"publicUrl":"https://lscr.io/linuxserver/heimdall"}' || :
else
echo "Package already exists on Scarf.sh"
fi
'''
}
}
/* ############### /* ###############
Build Container Build Container
############### */ ############### */
// Build Docker container for push to LS Repo // Build Docker container for push to LS Repo
stage('Build-Single') { stage('Build-Single') {
when { when {
environment name: 'MULTIARCH', value: 'false' expression {
env.MULTIARCH == 'false' || params.PACKAGE_CHECK == 'true'
}
environment name: 'EXIT_STATUS', value: '' environment name: 'EXIT_STATUS', value: ''
} }
steps { steps {
@@ -410,7 +472,10 @@ pipeline {
// Build MultiArch Docker containers for push to LS Repo // Build MultiArch Docker containers for push to LS Repo
stage('Build-Multi') { stage('Build-Multi') {
when { when {
environment name: 'MULTIARCH', value: 'true' allOf {
environment name: 'MULTIARCH', value: 'true'
expression { params.PACKAGE_CHECK == 'false' }
}
environment name: 'EXIT_STATUS', value: '' environment name: 'EXIT_STATUS', value: ''
} }
parallel { parallel {
@@ -515,7 +580,7 @@ pipeline {
sh '''#! /bin/bash sh '''#! /bin/bash
set -e set -e
TEMPDIR=$(mktemp -d) TEMPDIR=$(mktemp -d)
if [ "${MULTIARCH}" == "true" ]; then if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
LOCAL_CONTAINER=${IMAGE}:amd64-${META_TAG} LOCAL_CONTAINER=${IMAGE}:amd64-${META_TAG}
else else
LOCAL_CONTAINER=${IMAGE}:${META_TAG} LOCAL_CONTAINER=${IMAGE}:${META_TAG}
@@ -576,7 +641,7 @@ pipeline {
steps { steps {
sh '''#! /bin/bash sh '''#! /bin/bash
echo "Packages were updated. Cleaning up the image and exiting." echo "Packages were updated. Cleaning up the image and exiting."
if [ "${MULTIARCH}" == "true" ]; then if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
docker rmi ${IMAGE}:amd64-${META_TAG} docker rmi ${IMAGE}:amd64-${META_TAG}
else else
docker rmi ${IMAGE}:${META_TAG} docker rmi ${IMAGE}:${META_TAG}
@@ -600,7 +665,7 @@ pipeline {
steps { steps {
sh '''#! /bin/bash sh '''#! /bin/bash
echo "There are no package updates. Cleaning up the image and exiting." echo "There are no package updates. Cleaning up the image and exiting."
if [ "${MULTIARCH}" == "true" ]; then if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
docker rmi ${IMAGE}:amd64-${META_TAG} docker rmi ${IMAGE}:amd64-${META_TAG}
else else
docker rmi ${IMAGE}:${META_TAG} docker rmi ${IMAGE}:${META_TAG}
@@ -655,7 +720,7 @@ pipeline {
-e DO_REGION="ams3" \ -e DO_REGION="ams3" \
-e DO_BUCKET="lsio-ci" \ -e DO_BUCKET="lsio-ci" \
-t ghcr.io/linuxserver/ci:latest \ -t ghcr.io/linuxserver/ci:latest \
python /ci/ci.py''' python3 test_build.py'''
} }
} }
} }
@@ -675,6 +740,12 @@ pipeline {
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207', credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER', usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS' passwordVariable: 'DOCKERPASS'
],
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot',
usernameVariable: 'QUAYUSER',
passwordVariable: 'QUAYPASS'
] ]
]) { ]) {
retry(5) { retry(5) {
@@ -683,22 +754,32 @@ pipeline {
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG} docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG}
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:development docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:development
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${EXT_RELEASE_TAG} docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${SEMVER}
fi
docker push ${PUSHIMAGE}:development docker push ${PUSHIMAGE}:development
docker push ${PUSHIMAGE}:${META_TAG} docker push ${PUSHIMAGE}:${META_TAG}
docker push ${PUSHIMAGE}:${EXT_RELEASE_TAG} docker push ${PUSHIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker push ${PUSHIMAGE}:${SEMVER}
fi
done done
''' '''
} }
sh '''#! /bin/bash sh '''#! /bin/bash
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
docker rmi \ docker rmi \
${DELETEIMAGE}:${META_TAG} \ ${DELETEIMAGE}:${META_TAG} \
${DELETEIMAGE}:${EXT_RELEASE_TAG} \ ${DELETEIMAGE}:${EXT_RELEASE_TAG} \
${DELETEIMAGE}:development || : ${DELETEIMAGE}:development || :
if [ -n "${SEMVER}" ]; then
docker rmi ${DELETEIMAGE}:${SEMVER} || :
fi
done done
''' '''
} }
@@ -717,6 +798,12 @@ pipeline {
credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207', credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
usernameVariable: 'DOCKERUSER', usernameVariable: 'DOCKERUSER',
passwordVariable: 'DOCKERPASS' passwordVariable: 'DOCKERPASS'
],
[
$class: 'UsernamePasswordMultiBinding',
credentialsId: 'Quay.io-Robot',
usernameVariable: 'QUAYUSER',
passwordVariable: 'QUAYPASS'
] ]
]) { ]) {
retry(5) { retry(5) {
@@ -725,13 +812,14 @@ pipeline {
echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
if [ "${CI}" == "false" ]; then if [ "${CI}" == "false" ]; then
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG} docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG} docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
fi fi
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}"; do for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
@@ -741,6 +829,11 @@ pipeline {
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${SEMVER}
docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${SEMVER}
docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi
docker push ${MANIFESTIMAGE}:amd64-${META_TAG} docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG} docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG} docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
@@ -750,6 +843,11 @@ pipeline {
docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker push ${MANIFESTIMAGE}:amd64-${SEMVER}
docker push ${MANIFESTIMAGE}:arm32v7-${SEMVER}
docker push ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi
docker manifest push --purge ${MANIFESTIMAGE}:development || : docker manifest push --purge ${MANIFESTIMAGE}:development || :
docker manifest create ${MANIFESTIMAGE}:development ${MANIFESTIMAGE}:amd64-development ${MANIFESTIMAGE}:arm32v7-development ${MANIFESTIMAGE}:arm64v8-development docker manifest create ${MANIFESTIMAGE}:development ${MANIFESTIMAGE}:amd64-development ${MANIFESTIMAGE}:arm32v7-development ${MANIFESTIMAGE}:arm64v8-development
docker manifest annotate ${MANIFESTIMAGE}:development ${MANIFESTIMAGE}:arm32v7-development --os linux --arch arm docker manifest annotate ${MANIFESTIMAGE}:development ${MANIFESTIMAGE}:arm32v7-development --os linux --arch arm
@@ -762,14 +860,23 @@ pipeline {
docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} --os linux --arch arm docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8 docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8
if [ -n "${SEMVER}" ]; then
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER} || :
docker manifest create ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm32v7-${SEMVER} --os linux --arch arm
docker manifest annotate ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} --os linux --arch arm64 --variant v8
fi
docker manifest push --purge ${MANIFESTIMAGE}:development docker manifest push --purge ${MANIFESTIMAGE}:development
docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG}
docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
docker manifest push --purge ${MANIFESTIMAGE}:${SEMVER}
fi
done done
''' '''
} }
sh '''#! /bin/bash sh '''#! /bin/bash
for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
docker rmi \ docker rmi \
${DELETEIMAGE}:amd64-${META_TAG} \ ${DELETEIMAGE}:amd64-${META_TAG} \
${DELETEIMAGE}:amd64-development \ ${DELETEIMAGE}:amd64-development \
@@ -780,6 +887,12 @@ pipeline {
${DELETEIMAGE}:arm64v8-${META_TAG} \ ${DELETEIMAGE}:arm64v8-${META_TAG} \
${DELETEIMAGE}:arm64v8-development \ ${DELETEIMAGE}:arm64v8-development \
${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || : ${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || :
if [ -n "${SEMVER}" ]; then
docker rmi \
${DELETEIMAGE}:amd64-${SEMVER} \
${DELETEIMAGE}:arm32v7-${SEMVER} \
${DELETEIMAGE}:arm64v8-${SEMVER} || :
fi
done done
docker rmi \ docker rmi \
ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \ ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \

View File

@@ -29,10 +29,12 @@ Find us at:
# [linuxserver/heimdall](https://github.com/linuxserver/docker-heimdall) # [linuxserver/heimdall](https://github.com/linuxserver/docker-heimdall)
[![Scarf.io pulls](https://scarf.sh/installs-badge/linuxserver-ci/linuxserver%2Fheimdall?color=94398d&label-color=555555&logo-color=ffffff&style=for-the-badge&package-type=docker)](https://scarf.sh/gateway/linuxserver-ci/docker/linuxserver%2Fheimdall)
[![GitHub Stars](https://img.shields.io/github/stars/linuxserver/docker-heimdall.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-heimdall) [![GitHub Stars](https://img.shields.io/github/stars/linuxserver/docker-heimdall.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-heimdall)
[![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-heimdall.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-heimdall/releases) [![GitHub Release](https://img.shields.io/github/release/linuxserver/docker-heimdall.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&logo=github)](https://github.com/linuxserver/docker-heimdall/releases)
[![GitHub Package Repository](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub%20Package&logo=github)](https://github.com/linuxserver/docker-heimdall/packages) [![GitHub Package Repository](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitHub%20Package&logo=github)](https://github.com/linuxserver/docker-heimdall/packages)
[![GitLab Container Registry](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitLab%20Registry&logo=gitlab)](https://gitlab.com/linuxserver.io/docker-heimdall/container_registry) [![GitLab Container Registry](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=GitLab%20Registry&logo=gitlab)](https://gitlab.com/linuxserver.io/docker-heimdall/container_registry)
[![Quay.io](https://img.shields.io/static/v1.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=linuxserver.io&message=Quay.io)](https://quay.io/repository/linuxserver.io/heimdall)
[![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/heimdall.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/heimdall) [![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/heimdall.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=pulls&logo=docker)](https://hub.docker.com/r/linuxserver/heimdall)
[![Docker Stars](https://img.shields.io/docker/stars/linuxserver/heimdall.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/heimdall) [![Docker Stars](https://img.shields.io/docker/stars/linuxserver/heimdall.svg?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=stars&logo=docker)](https://hub.docker.com/r/linuxserver/heimdall)
[![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-heimdall%2Fjob%2Fdevelopment%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-heimdall/job/development/) [![Jenkins Build](https://img.shields.io/jenkins/build?labelColor=555555&logoColor=ffffff&style=for-the-badge&jobUrl=https%3A%2F%2Fci.linuxserver.io%2Fjob%2FDocker-Pipeline-Builders%2Fjob%2Fdocker-heimdall%2Fjob%2Fdevelopment%2F&logo=jenkins)](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-heimdall/job/development/)
@@ -46,17 +48,26 @@ Why not use it as your browser start page? It even has the ability to include a
## Supported Architectures ## Supported Architectures
Our images support multiple architectures such as `x86-64`, `arm64` and `armhf`. We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/). We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
Simply pulling `ghcr.io/linuxserver/heimdall` should retrieve the correct image for your arch, but you can also pull specific arch images via tags. Simply pulling `lscr.io/linuxserver/heimdall:development` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
The architectures supported by this image are: The architectures supported by this image are:
| Architecture | Tag | | Architecture | Available | Tag |
| :----: | --- | | :----: | :----: | ---- |
| x86-64 | amd64-latest | | x86-64 | ✅ | amd64-\<version tag\> |
| arm64 | arm64v8-latest | | arm64 | ✅ | arm64v8-\<version tag\> |
| armhf | arm32v7-latest | | armhf| ✅ | arm32v7-\<version tag\> |
## Version Tags
This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags.
| Tag | Available | Description |
| :----: | :----: |--- |
| latest | ✅ | Stable Heimdall releases. |
| development | ✅ | Latest commit from the github 2.x branch. |
## Application Setup ## Application Setup
@@ -78,14 +89,14 @@ Here are some example snippets to help you get started creating a container.
version: "2.1" version: "2.1"
services: services:
heimdall: heimdall:
image: ghcr.io/linuxserver/heimdall image: lscr.io/linuxserver/heimdall:development
container_name: heimdall container_name: heimdall
environment: environment:
- PUID=1000 - PUID=1000
- PGID=1000 - PGID=1000
- TZ=Europe/London - TZ=Europe/London
volumes: volumes:
- </path/to/appdata/config>:/config - /path/to/appdata/config:/config
ports: ports:
- 80:80 - 80:80
- 443:443 - 443:443
@@ -102,16 +113,11 @@ docker run -d \
-e TZ=Europe/London \ -e TZ=Europe/London \
-p 80:80 \ -p 80:80 \
-p 443:443 \ -p 443:443 \
-v </path/to/appdata/config>:/config \ -v /path/to/appdata/config:/config \
--restart unless-stopped \ --restart unless-stopped \
ghcr.io/linuxserver/heimdall lscr.io/linuxserver/heimdall:development
``` ```
Using tags, you can switch between the stable releases of Heimdall and the master branch. No tag is required for the latest stable release.
Add the development tag, if required, to the linuxserver/heimdall line of the run/create command in the following format, linuxserver/heimdall:development
The development tag will be the latest commit in the master branch of Heimdall.
HOWEVER , USE THE DEVELOPMENT TAG AT YOUR OWN PERIL !!!!!!!!!
## Parameters ## Parameters
Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `<external>:<internal>` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container. Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `<external>:<internal>` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container.
@@ -168,7 +174,7 @@ We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to
* container version number * container version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' heimdall` * `docker inspect -f '{{ index .Config.Labels "build_version" }}' heimdall`
* image version number * image version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' ghcr.io/linuxserver/heimdall` * `docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/heimdall:development`
## Updating Info ## Updating Info
@@ -186,7 +192,7 @@ Below are the instructions for updating containers:
### Via Docker Run ### Via Docker Run
* Update the image: `docker pull ghcr.io/linuxserver/heimdall` * Update the image: `docker pull lscr.io/linuxserver/heimdall:development`
* Stop the running container: `docker stop heimdall` * Stop the running container: `docker stop heimdall`
* Delete the container: `docker rm heimdall` * Delete the container: `docker rm heimdall`
* Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and settings will be preserved) * Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and settings will be preserved)
@@ -221,7 +227,7 @@ cd docker-heimdall
docker build \ docker build \
--no-cache \ --no-cache \
--pull \ --pull \
-t ghcr.io/linuxserver/heimdall:latest . -t lscr.io/linuxserver/heimdall:development .
``` ```
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static` The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
@@ -234,6 +240,9 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Versions ## Versions
* **04.11.22:** - Build commits to upstream branch 2.x.
* **13.03.21:** - Make searchproviders.yaml user configurable.
* **11.03.21:** - Rebase to alpine 3.14.
* **10.02.21:** - Revert to alpine 3.12 as php 7.4 broke laravel. * **10.02.21:** - Revert to alpine 3.12 as php 7.4 broke laravel.
* **10.02.21:** - Rebasing to alpine 3.13. * **10.02.21:** - Rebasing to alpine 3.13.
* **01.06.20:** - Rebasing to alpine 3.12. * **01.06.20:** - Rebasing to alpine 3.12.

View File

@@ -7,7 +7,7 @@ release_type: prerelease
release_tag: development release_tag: development
ls_branch: development ls_branch: development
repo_vars: repo_vars:
- EXT_GIT_BRANCH = 'master' - EXT_GIT_BRANCH = '2.x'
- EXT_USER = 'linuxserver' - EXT_USER = 'linuxserver'
- EXT_REPO = 'Heimdall' - EXT_REPO = 'Heimdall'
- CONTAINER_NAME = 'heimdall' - CONTAINER_NAME = 'heimdall'

View File

@@ -1,71 +1,75 @@
alpine-baselayout-3.2.0-r7 alpine-baselayout-3.2.0-r16
alpine-keys-2.2-r0 alpine-keys-2.4-r0
apache2-utils-2.4.48-r0 apache2-utils-2.4.54-r0
apk-tools-2.10.8-r0 apk-tools-2.12.7-r0
apr-1.7.0-r0 apr-1.7.0-r1
apr-util-1.6.1-r6 apr-util-1.6.1-r7
argon2-libs-20190702-r1 argon2-libs-20190702-r1
bash-5.0.17-r0 bash-5.1.16-r0
busybox-1.31.1-r20 brotli-libs-1.0.9-r5
ca-certificates-20191127-r4 busybox-1.33.1-r8
ca-certificates-bundle-20191127-r4 ca-certificates-20220614-r0
coreutils-8.32-r0 ca-certificates-bundle-20220614-r0
curl-7.78.0-r0 coreutils-8.32-r2
expat-2.2.9-r1 curl-7.79.1-r3
git-2.26.3-r0 expat-2.5.0-r0
git-2.32.4-r0
libacl-2.2.53-r0 libacl-2.2.53-r0
libattr-2.4.48-r0 libattr-2.5.1-r0
libc-utils-0.7.2-r3 libc-utils-0.7.2-r3
libcrypto1.1-1.1.1k-r0 libcrypto1.1-1.1.1q-r0
libcurl-7.78.0-r0 libcurl-7.79.1-r3
libedit-20191231.3.1-r0 libedit-20210216.3.1-r0
libintl-0.20.2-r0 libintl-0.21-r0
libmagic-5.38-r0 libmagic-5.40-r1
libproc-3.3.16-r0 libproc-3.3.17-r0
libressl3.1-libcrypto-3.1.2-r0 libressl3.3-libcrypto-3.3.6-r0
libressl3.1-libssl-3.1.2-r0 libressl3.3-libssl-3.3.6-r0
libssl1.1-1.1.1k-r0 libretls-3.3.3p1-r3
libtls-standalone-2.9.1-r1 libssl1.1-1.1.1q-r0
libuuid-2.35.2-r0 libuuid-2.37.4-r0
libxml2-2.9.12-r0 libxml2-2.9.14-r2
libzip-1.6.1-r1 libzip-1.7.3-r2
linux-pam-1.3.1-r4 linux-pam-1.5.1-r1
logrotate-3.16.0-r0 logrotate-3.18.1-r4
musl-1.1.24-r10 musl-1.2.2-r3
musl-utils-1.1.24-r10 musl-utils-1.2.2-r3
nano-4.9.3-r0 nano-5.7-r2
ncurses-libs-6.2_p20200523-r0 ncurses-libs-6.2_p20210612-r1
ncurses-terminfo-base-6.2_p20200523-r0 ncurses-terminfo-base-6.2_p20210612-r1
nghttp2-libs-1.41.0-r0 nghttp2-libs-1.43.0-r0
nginx-1.18.0-r3 nginx-1.20.2-r1
openssl-1.1.1k-r0 oniguruma-6.9.7.1-r0
openssl-1.1.1s-r0
pcre-8.44-r0 pcre-8.44-r0
pcre2-10.35-r0 pcre2-10.36-r1
php7-7.3.29-r0 php7-7.4.32-r0
php7-common-7.3.29-r0 php7-common-7.4.32-r0
php7-ctype-7.3.29-r0 php7-ctype-7.4.33-r0
php7-fileinfo-7.3.29-r0 php7-fileinfo-7.4.32-r0
php7-fpm-7.3.29-r0 php7-fpm-7.4.32-r0
php7-json-7.3.29-r0 php7-json-7.4.32-r0
php7-mbstring-7.3.29-r0 php7-mbstring-7.4.32-r0
php7-openssl-7.3.29-r0 php7-openssl-7.4.32-r0
php7-pdo-7.3.29-r0 php7-pdo-7.4.33-r0
php7-pdo_sqlite-7.3.29-r0 php7-pdo_sqlite-7.4.33-r0
php7-session-7.3.29-r0 php7-session-7.4.32-r0
php7-simplexml-7.3.29-r0 php7-simplexml-7.4.32-r0
php7-tokenizer-7.3.29-r0 php7-tokenizer-7.4.33-r0
php7-xml-7.3.29-r0 php7-xml-7.4.32-r0
php7-xmlwriter-7.3.29-r0 php7-xmlwriter-7.4.32-r0
php7-zip-7.3.29-r0 php7-zip-7.4.33-r0
popt-1.16-r7 popt-1.18-r0
procps-3.3.16-r0 procps-3.3.17-r0
readline-8.0.4-r0 readline-8.1.0-r0
scanelf-1.2.6-r0 s6-ipcserver-2.10.0.3-r0
scanelf-1.3.2-r0
shadow-4.8.1-r0 shadow-4.8.1-r0
sqlite-libs-3.32.1-r1 skalibs-2.10.0.3-r0
ssl_client-1.31.1-r20 sqlite-libs-3.35.5-r0
tar-1.32-r2 ssl_client-1.33.1-r8
tzdata-2021a-r0 tzdata-2022c-r0
xz-5.2.5-r0 utmps-0.1.0.2-r0
xz-libs-5.2.5-r0 xz-5.2.5-r1
zlib-1.2.11-r3 xz-libs-5.2.5-r1
zlib-1.2.12-r3

View File

@@ -17,12 +17,18 @@ available_architectures:
- { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"} - { arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
- { arch: "{{ arch_armhf }}", tag: "arm32v7-latest"} - { arch: "{{ arch_armhf }}", tag: "arm32v7-latest"}
# development version
development_versions: true
development_versions_items:
- { tag: "latest", desc: "Stable Heimdall releases." }
- { tag: "development", desc: "Latest commit from the github 2.x branch." }
# container parameters # container parameters
common_param_env_vars_enabled: true common_param_env_vars_enabled: true
param_container_name: "{{ project_name }}" param_container_name: "{{ project_name }}"
param_usage_include_vols: true param_usage_include_vols: true
param_volumes: param_volumes:
- { vol_path: "/config", vol_host_path: "</path/to/appdata/config>", desc: "Contains all relevant configuration files." } - { vol_path: "/config", vol_host_path: "/path/to/appdata/config", desc: "Contains all relevant configuration files." }
param_usage_include_ports: true param_usage_include_ports: true
param_ports: param_ports:
- { external_port: "80", internal_port: "80", port_desc: "http gui" } - { external_port: "80", internal_port: "80", port_desc: "http gui" }
@@ -32,7 +38,7 @@ param_env_vars:
- { env_var: "TZ", env_value: "Europe/London", desc: "Specify a timezone to use EG Europe/London"} - { env_var: "TZ", env_value: "Europe/London", desc: "Specify a timezone to use EG Europe/London"}
# optional parameters # optional parameters
optional_block_1: true optional_block_1: false
optional_block_1_items: optional_block_1_items:
- | - |
Using tags, you can switch between the stable releases of Heimdall and the master branch. No tag is required for the latest stable release. Using tags, you can switch between the stable releases of Heimdall and the master branch. No tag is required for the latest stable release.
@@ -52,6 +58,9 @@ app_setup_block: |
# changelog # changelog
changelogs: changelogs:
- { date: "04.11.22:", desc: "Build commits to upstream branch 2.x." }
- { date: "13.03.21:", desc: "Make searchproviders.yaml user configurable." }
- { date: "11.03.21:", desc: "Rebase to alpine 3.14." }
- { date: "10.02.21:", desc: "Revert to alpine 3.12 as php 7.4 broke laravel." } - { date: "10.02.21:", desc: "Revert to alpine 3.12 as php 7.4 broke laravel." }
- { date: "10.02.21:", desc: "Rebasing to alpine 3.13." } - { date: "10.02.21:", desc: "Rebasing to alpine 3.13." }
- { date: "01.06.20:", desc: "Rebasing to alpine 3.12." } - { date: "01.06.20:", desc: "Rebasing to alpine 3.12." }

View File

@@ -15,6 +15,7 @@ mkdir -p \
echo -e '\n# Heimdall user authorization\nfastcgi_param PHP_AUTH_USER $remote_user;\nfastcgi_param PHP_AUTH_PW $http_authorization;' >> \ echo -e '\n# Heimdall user authorization\nfastcgi_param PHP_AUTH_USER $remote_user;\nfastcgi_param PHP_AUTH_PW $http_authorization;' >> \
/etc/nginx/fastcgi_params && \ /etc/nginx/fastcgi_params && \
rm -rf /heimdall && \ rm -rf /heimdall && \
cp /var/www/localhost/heimdall/storage/app/searchproviders.yaml /var/www/localhost/heimdall/storage/app/searchproviders.yaml.orig && \
chown -R abc:abc /var/www/localhost/heimdall chown -R abc:abc /var/www/localhost/heimdall
# create symlinks # create symlinks
@@ -43,6 +44,11 @@ done
cp /var/www/localhost/heimdall/.env.example /config/www/.env && \ cp /var/www/localhost/heimdall/.env.example /config/www/.env && \
echo "generating app key" echo "generating app key"
php /var/www/localhost/heimdall/artisan key:generate php /var/www/localhost/heimdall/artisan key:generate
# copy searchproviders if not exists and symlink
[[ ! -f /config/www/searchproviders.yaml ]] && \
cp /var/www/localhost/heimdall/storage/app/searchproviders.yaml.orig /config/www/searchproviders.yaml
rm -rf /var/www/localhost/heimdall/storage/app/searchproviders.yaml
ln -s /config/www/searchproviders.yaml /var/www/localhost/heimdall/storage/app/searchproviders.yaml
# set queue driver to database # set queue driver to database
sed -i 's/QUEUE_DRIVER=sync/QUEUE_DRIVER=database/' /config/www/.env sed -i 's/QUEUE_DRIVER=sync/QUEUE_DRIVER=database/' /config/www/.env