mirror of
https://github.com/linuxserver/docker-heimdall.git
synced 2026-04-11 05:09:46 +09:00
Compare commits
14 Commits
v2.7.6-ls3
...
v2.7.6-ls3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
83e9ee723c | ||
|
|
69f8714750 | ||
|
|
fb0817506c | ||
|
|
812f33861c | ||
|
|
0ea5f069a1 | ||
|
|
0bbf23fef2 | ||
|
|
745334ec1d | ||
|
|
5ce6c7af4a | ||
|
|
4070c6c1c1 | ||
|
|
6f90ce6e0d | ||
|
|
2b346cb9fa | ||
|
|
a40f07406b | ||
|
|
1c1f459dc4 | ||
|
|
302ee1006f |
174
Jenkinsfile
vendored
174
Jenkinsfile
vendored
@@ -78,6 +78,7 @@ pipeline {
|
||||
'''
|
||||
script{
|
||||
env.EXIT_STATUS = ''
|
||||
env.CI_TEST_ATTEMPTED = ''
|
||||
env.LS_RELEASE = sh(
|
||||
script: '''docker run --rm quay.io/skopeo/stable:v1 inspect docker://ghcr.io/${LS_USER}/${CONTAINER_NAME}:latest 2>/dev/null | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
|
||||
returnStdout: true).trim()
|
||||
@@ -293,7 +294,7 @@ pipeline {
|
||||
-v ${WORKSPACE}:/mnt \
|
||||
-e AWS_ACCESS_KEY_ID=\"${S3_KEY}\" \
|
||||
-e AWS_SECRET_ACCESS_KEY=\"${S3_SECRET}\" \
|
||||
ghcr.io/linuxserver/baseimage-alpine:3 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\
|
||||
ghcr.io/linuxserver/baseimage-alpine:3.23 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\
|
||||
apk add --no-cache python3 && \
|
||||
python3 -m venv /lsiopy && \
|
||||
pip install --no-cache-dir -U pip && \
|
||||
@@ -881,6 +882,7 @@ pipeline {
|
||||
script{
|
||||
env.CI_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/index.html'
|
||||
env.CI_JSON_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/report.json'
|
||||
env.CI_TEST_ATTEMPTED = 'true'
|
||||
}
|
||||
sh '''#! /bin/bash
|
||||
set -e
|
||||
@@ -1083,98 +1085,13 @@ EOF
|
||||
) '''
|
||||
}
|
||||
}
|
||||
// If this is a Pull request send the CI link as a comment on it
|
||||
stage('Pull Request Comment') {
|
||||
when {
|
||||
not {environment name: 'CHANGE_ID', value: ''}
|
||||
environment name: 'EXIT_STATUS', value: ''
|
||||
}
|
||||
steps {
|
||||
sh '''#! /bin/bash
|
||||
# Function to retrieve JSON data from URL
|
||||
get_json() {
|
||||
local url="$1"
|
||||
local response=$(curl -s "$url")
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to retrieve JSON data from $url"
|
||||
return 1
|
||||
fi
|
||||
local json=$(echo "$response" | jq .)
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to parse JSON data from $url"
|
||||
return 1
|
||||
fi
|
||||
echo "$json"
|
||||
}
|
||||
|
||||
build_table() {
|
||||
local data="$1"
|
||||
|
||||
# Get the keys in the JSON data
|
||||
local keys=$(echo "$data" | jq -r 'to_entries | map(.key) | .[]')
|
||||
|
||||
# Check if keys are empty
|
||||
if [ -z "$keys" ]; then
|
||||
echo "JSON report data does not contain any keys or the report does not exist."
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Build table header
|
||||
local header="| Tag | Passed |\\n| --- | --- |\\n"
|
||||
|
||||
# Loop through the JSON data to build the table rows
|
||||
local rows=""
|
||||
for build in $keys; do
|
||||
local status=$(echo "$data" | jq -r ".[\\"$build\\"].test_success")
|
||||
if [ "$status" = "true" ]; then
|
||||
status="✅"
|
||||
else
|
||||
status="❌"
|
||||
fi
|
||||
local row="| "$build" | "$status" |\\n"
|
||||
rows="${rows}${row}"
|
||||
done
|
||||
|
||||
local table="${header}${rows}"
|
||||
local escaped_table=$(echo "$table" | sed 's/\"/\\\\"/g')
|
||||
echo "$escaped_table"
|
||||
}
|
||||
|
||||
if [[ "${CI}" = "true" ]]; then
|
||||
# Retrieve JSON data from URL
|
||||
data=$(get_json "$CI_JSON_URL")
|
||||
# Create table from JSON data
|
||||
table=$(build_table "$data")
|
||||
echo -e "$table"
|
||||
|
||||
curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
|
||||
-H "Accept: application/vnd.github.v3+json" \
|
||||
"https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
|
||||
-d "{\\"body\\": \\"I am a bot, here are the test results for this PR: \\n${CI_URL}\\n${SHELLCHECK_URL}\\n${table}\\"}"
|
||||
else
|
||||
curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
|
||||
-H "Accept: application/vnd.github.v3+json" \
|
||||
"https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
|
||||
-d "{\\"body\\": \\"I am a bot, here is the pushed image/manifest for this PR: \\n\\n\\`${GITHUBIMAGE}:${META_TAG}\\`\\"}"
|
||||
fi
|
||||
'''
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
/* ######################
|
||||
Send status to Discord
|
||||
Comment on PR and Send status to Discord
|
||||
###################### */
|
||||
post {
|
||||
always {
|
||||
sh '''#!/bin/bash
|
||||
rm -rf /config/.ssh/id_sign
|
||||
rm -rf /config/.ssh/id_sign.pub
|
||||
git config --global --unset gpg.format
|
||||
git config --global --unset user.signingkey
|
||||
git config --global --unset commit.gpgsign
|
||||
'''
|
||||
script{
|
||||
script {
|
||||
env.JOB_DATE = sh(
|
||||
script: '''date '+%Y-%m-%dT%H:%M:%S%:z' ''',
|
||||
returnStdout: true).trim()
|
||||
@@ -1217,6 +1134,87 @@ EOF
|
||||
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
|
||||
}
|
||||
}
|
||||
script {
|
||||
if (env.GITHUBIMAGE =~ /lspipepr/){
|
||||
if (env.CI_TEST_ATTEMPTED == "true"){
|
||||
sh '''#! /bin/bash
|
||||
# Function to retrieve JSON data from URL
|
||||
get_json() {
|
||||
local url="$1"
|
||||
local response=$(curl -s "$url")
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to retrieve JSON data from $url"
|
||||
return 1
|
||||
fi
|
||||
local json=$(echo "$response" | jq .)
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to parse JSON data from $url"
|
||||
return 1
|
||||
fi
|
||||
echo "$json"
|
||||
}
|
||||
|
||||
build_table() {
|
||||
local data="$1"
|
||||
|
||||
# Get the keys in the JSON data
|
||||
local keys=$(echo "$data" | jq -r 'to_entries | map(.key) | .[]')
|
||||
|
||||
# Check if keys are empty
|
||||
if [ -z "$keys" ]; then
|
||||
echo "JSON report data does not contain any keys or the report does not exist."
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Build table header
|
||||
local header="| Tag | Passed |\\n| --- | --- |\\n"
|
||||
|
||||
# Loop through the JSON data to build the table rows
|
||||
local rows=""
|
||||
for build in $keys; do
|
||||
local status=$(echo "$data" | jq -r ".[\\"$build\\"].test_success")
|
||||
if [ "$status" = "true" ]; then
|
||||
status="✅"
|
||||
else
|
||||
status="❌"
|
||||
fi
|
||||
local row="| "$build" | "$status" |\\n"
|
||||
rows="${rows}${row}"
|
||||
done
|
||||
|
||||
local table="${header}${rows}"
|
||||
local escaped_table=$(echo "$table" | sed 's/\"/\\\\"/g')
|
||||
echo "$escaped_table"
|
||||
}
|
||||
|
||||
if [[ "${CI}" = "true" ]]; then
|
||||
# Retrieve JSON data from URL
|
||||
data=$(get_json "$CI_JSON_URL")
|
||||
# Create table from JSON data
|
||||
table=$(build_table "$data")
|
||||
echo -e "$table"
|
||||
|
||||
curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
|
||||
-H "Accept: application/vnd.github.v3+json" \
|
||||
"https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
|
||||
-d "{\\"body\\": \\"I am a bot, here are the test results for this PR: \\n${CI_URL}\\n${SHELLCHECK_URL}\\n${table}\\"}"
|
||||
else
|
||||
curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
|
||||
-H "Accept: application/vnd.github.v3+json" \
|
||||
"https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
|
||||
-d "{\\"body\\": \\"I am a bot, here is the pushed image/manifest for this PR: \\n\\n\\`${GITHUBIMAGE}:${META_TAG}\\`\\"}"
|
||||
fi
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
sh '''#!/bin/bash
|
||||
rm -rf /config/.ssh/id_sign
|
||||
rm -rf /config/.ssh/id_sign.pub
|
||||
git config --global --unset gpg.format
|
||||
git config --global --unset user.signingkey
|
||||
git config --global --unset commit.gpgsign
|
||||
'''
|
||||
}
|
||||
cleanup {
|
||||
sh '''#! /bin/bash
|
||||
|
||||
@@ -80,7 +80,7 @@ This image now supports password protection through htpasswd. Run the following
|
||||
To help you get started creating a container from this image you can either use docker-compose or the docker cli.
|
||||
|
||||
>[!NOTE]
|
||||
>Unless a parameter is flaged as 'optional', it is *mandatory* and a value must be provided.
|
||||
>Unless a parameter is flagged as 'optional', it is *mandatory* and a value must be provided.
|
||||
|
||||
### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose))
|
||||
|
||||
|
||||
@@ -4,8 +4,8 @@ acl-libs 2.3.2-r1 apk
|
||||
alpine-baselayout 3.7.0-r0 apk
|
||||
alpine-baselayout-data 3.7.0-r0 apk
|
||||
alpine-keys 2.5-r0 apk
|
||||
alpine-release 3.22.2-r0 apk
|
||||
apache2-utils 2.4.65-r0 apk
|
||||
alpine-release 3.22.3-r0 apk
|
||||
apache2-utils 2.4.66-r0 apk
|
||||
apk-tools 2.14.9-r3 apk
|
||||
apr 1.7.5-r0 apk
|
||||
apr-util 1.6.3-r1 apk
|
||||
@@ -19,13 +19,13 @@ brick/math 0.12.3 php-composer
|
||||
brotli-libs 1.1.0-r2 apk
|
||||
busybox 1.37.0-r20 apk
|
||||
busybox-binsh 1.37.0-r20 apk
|
||||
c-ares 1.34.5-r0 apk
|
||||
c-ares 1.34.6-r0 apk
|
||||
ca-certificates 20250911-r0 apk
|
||||
ca-certificates-bundle 20250911-r0 apk
|
||||
carbonphp/carbon-doctrine-types 3.2.0 php-composer
|
||||
catatonit 0.2.1-r0 apk
|
||||
clue/stream-filter v1.7.0 php-composer
|
||||
composer 2.9.2 binary
|
||||
composer 2.9.5 binary
|
||||
composer/class-map-generator 1.6.1 php-composer
|
||||
composer/pcre 3.3.2 php-composer
|
||||
coreutils 9.7-r1 apk
|
||||
@@ -76,19 +76,19 @@ libapk2 2.14.9-r3 apk
|
||||
libattr 2.5.2-r2 apk
|
||||
libbsd 0.12.2-r0 apk
|
||||
libbz2 1.0.8-r6 apk
|
||||
libcrypto3 3.5.4-r0 apk
|
||||
libcrypto3 3.5.5-r0 apk
|
||||
libcurl 8.14.1-r2 apk
|
||||
libedit 20250104.3.1-r1 apk
|
||||
libexpat 2.7.3-r0 apk
|
||||
libexpat 2.7.5-r0 apk
|
||||
libgcc 14.2.0-r6 apk
|
||||
libidn2 2.3.7-r0 apk
|
||||
libintl 0.24.1-r0 apk
|
||||
libmd 1.1.0-r0 apk
|
||||
libncursesw 6.5_p20250503-r0 apk
|
||||
libpq 17.7-r0 apk
|
||||
libpq 17.9-r0 apk
|
||||
libproc2 4.0.4-r3 apk
|
||||
libpsl 0.21.5-r3 apk
|
||||
libssl3 3.5.4-r0 apk
|
||||
libssl3 3.5.5-r0 apk
|
||||
libstdc++ 14.2.0-r6 apk
|
||||
libunistring 1.3-r0 apk
|
||||
libuuid 2.41-r9 apk
|
||||
@@ -109,12 +109,12 @@ netcat-openbsd 1.229.1-r0 apk
|
||||
nette/schema v1.3.2 php-composer
|
||||
nette/utils v4.0.7 php-composer
|
||||
nghttp2-libs 1.65.0-r0 apk
|
||||
nginx 1.28.0-r3 apk
|
||||
nginx 1.28.3-r0 apk
|
||||
nikic/php-parser v5.5.0 php-composer
|
||||
nunomaduro/collision v8.5.0 php-composer
|
||||
nunomaduro/termwind v2.3.1 php-composer
|
||||
oniguruma 6.9.10-r0 apk
|
||||
openssl 3.5.4-r0 apk
|
||||
openssl 3.5.5-r0 apk
|
||||
pcre2 10.46-r0 apk
|
||||
phar-io/manifest 2.0.4 php-composer
|
||||
phar-io/version 3.2.1 php-composer
|
||||
@@ -125,30 +125,30 @@ php-http/httplug 2.4.1 php-composer
|
||||
php-http/message 1.16.2 php-composer
|
||||
php-http/multipart-stream-builder 1.4.2 php-composer
|
||||
php-http/promise 1.3.1 php-composer
|
||||
php84 8.4.14-r0 apk
|
||||
php84-common 8.4.14-r0 apk
|
||||
php84-ctype 8.4.14-r0 apk
|
||||
php84-curl 8.4.14-r0 apk
|
||||
php84-dom 8.4.14-r0 apk
|
||||
php84-fileinfo 8.4.14-r0 apk
|
||||
php84-fpm 8.4.14-r0 apk
|
||||
php84-iconv 8.4.14-r0 apk
|
||||
php84-intl 8.4.14-r0 apk
|
||||
php84-mbstring 8.4.14-r0 apk
|
||||
php84-mysqlnd 8.4.14-r0 apk
|
||||
php84-opcache 8.4.14-r0 apk
|
||||
php84-openssl 8.4.14-r0 apk
|
||||
php84-pdo 8.4.14-r0 apk
|
||||
php84-pdo_mysql 8.4.14-r0 apk
|
||||
php84-pdo_pgsql 8.4.14-r0 apk
|
||||
php84-pdo_sqlite 8.4.14-r0 apk
|
||||
php84-phar 8.4.14-r0 apk
|
||||
php84-session 8.4.14-r0 apk
|
||||
php84-simplexml 8.4.14-r0 apk
|
||||
php84-tokenizer 8.4.14-r0 apk
|
||||
php84-xml 8.4.14-r0 apk
|
||||
php84-xmlwriter 8.4.14-r0 apk
|
||||
php84-zip 8.4.14-r0 apk
|
||||
php84 8.4.16-r0 apk
|
||||
php84-common 8.4.16-r0 apk
|
||||
php84-ctype 8.4.16-r0 apk
|
||||
php84-curl 8.4.16-r0 apk
|
||||
php84-dom 8.4.16-r0 apk
|
||||
php84-fileinfo 8.4.16-r0 apk
|
||||
php84-fpm 8.4.16-r0 apk
|
||||
php84-iconv 8.4.16-r0 apk
|
||||
php84-intl 8.4.16-r0 apk
|
||||
php84-mbstring 8.4.16-r0 apk
|
||||
php84-mysqlnd 8.4.16-r0 apk
|
||||
php84-opcache 8.4.16-r0 apk
|
||||
php84-openssl 8.4.16-r0 apk
|
||||
php84-pdo 8.4.16-r0 apk
|
||||
php84-pdo_mysql 8.4.16-r0 apk
|
||||
php84-pdo_pgsql 8.4.16-r0 apk
|
||||
php84-pdo_sqlite 8.4.16-r0 apk
|
||||
php84-phar 8.4.16-r0 apk
|
||||
php84-session 8.4.16-r0 apk
|
||||
php84-simplexml 8.4.16-r0 apk
|
||||
php84-tokenizer 8.4.16-r0 apk
|
||||
php84-xml 8.4.16-r0 apk
|
||||
php84-xmlwriter 8.4.16-r0 apk
|
||||
php84-zip 8.4.16-r0 apk
|
||||
phpoption/phpoption 1.9.3 php-composer
|
||||
phpunit/php-code-coverage 10.1.16 php-composer
|
||||
phpunit/php-file-iterator 4.1.0 php-composer
|
||||
@@ -235,7 +235,7 @@ symfony/var-exporter v7.3.0 php-composer
|
||||
symfony/yaml v7.3.1 php-composer
|
||||
theseer/tokenizer 1.2.3 php-composer
|
||||
tijsverkoyen/css-to-inline-styles v2.3.0 php-composer
|
||||
tzdata 2025b-r0 apk
|
||||
tzdata 2026a-r0 apk
|
||||
utmps-libs 0.1.3.1-r0 apk
|
||||
vlucas/phpdotenv v5.6.2 php-composer
|
||||
voku/portable-ascii 2.0.3 php-composer
|
||||
|
||||
Reference in New Issue
Block a user