Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
917d879
Fix condition for misc block in docs
Roxedus Feb 24, 2026
b243a10
send CI link to PR comment even when the test fails
aptalca Mar 5, 2026
f98e63e
update nvidia section of the blurb to reflect fully tested state whil…
thelamer Mar 19, 2026
3a73e48
Merge pull request #380 from linuxserver/ci-fail
aptalca Mar 19, 2026
186af30
move PR comment to post so it runs even when the tests and the build …
aptalca Mar 19, 2026
6f05684
Merge pull request #383 from linuxserver/nvidia-selkies-update
thelamer Mar 20, 2026
6ad44e0
Merge pull request #379 from linuxserver/misc-condition
thelamer Mar 20, 2026
1662eeb
Merge pull request #384 from linuxserver/monthly-test
aptalca Mar 20, 2026
5c77ca7
Make unraid text happy in mkdocs
Roxedus Mar 27, 2026
533366d
Move variable definitions for easier blankspace handling
Roxedus Mar 27, 2026
39308e9
Bump
Roxedus Mar 27, 2026
fc68f85
Make logic compliant
Roxedus Mar 27, 2026
3f5847d
Merge pull request #385 from linuxserver/selkies_bs
thelamer Mar 29, 2026
c3fa935
Merge pull request #386 from linuxserver/Bumps
thelamer Mar 29, 2026
bdc386e
mark nvidia experiemntal until we have a stable solid method for all …
thelamer Mar 29, 2026
e3e19f7
also mention selkies desktop flag
thelamer Mar 29, 2026
570366c
Merge pull request #387 from linuxserver/nvidia-tweak
thelamer Mar 29, 2026
32004ac
mention chromium client changes needed for nvidia frames on clients w…
thelamer Mar 31, 2026
23e022e
wording
thelamer Mar 31, 2026
4dca461
also recommend fbdev kernel param
thelamer Apr 1, 2026
595d6f0
Merge pull request #388 from linuxserver/more-nvidia-tweaks
thelamer Apr 4, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1

FROM ghcr.io/linuxserver/baseimage-alpine:3.22
FROM ghcr.io/linuxserver/baseimage-alpine:3.23

# set version label
ARG BUILD_DATE
Expand All @@ -10,7 +10,7 @@ LABEL maintainer="roxedus, thelamer"

RUN \
echo "**** install build packages ****" && \
YQ_VERSION=v4.45.1 &&\
YQ_VERSION=v4.52.5 &&\
wget https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64 -O /usr/bin/yq &&\
chmod +x /usr/bin/yq && \
apk add --no-cache --upgrade \
Expand Down
4 changes: 2 additions & 2 deletions Dockerfile.aarch64
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1

FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.22
FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.23

# set version label
ARG BUILD_DATE
Expand All @@ -10,7 +10,7 @@ LABEL maintainer="roxedus, thelamer"

RUN \
echo "**** install build packages ****" && \
YQ_VERSION=v4.45.1 &&\
YQ_VERSION=v4.52.5 &&\
wget https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_arm64 -O /usr/bin/yq &&\
chmod +x /usr/bin/yq && \
apk add --no-cache --upgrade \
Expand Down
172 changes: 85 additions & 87 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,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()
Expand Down Expand Up @@ -825,6 +826,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
Expand Down Expand Up @@ -1027,98 +1029,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()
Expand Down Expand Up @@ -1161,6 +1078,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
Expand Down
4 changes: 2 additions & 2 deletions ansible/generate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
- name: Set UID
tags: [ "always" ]
changed_when: false
when: lookup('env', 'PUID')
when: lookup('env', 'PUID') | ternary(True, False)
user:
name: abc
non_unique: yes
Expand All @@ -28,7 +28,7 @@
- name: Set GID
tags: [ "always" ]
changed_when: false
when: lookup('env', 'PGID')
when: lookup('env', 'PGID') | ternary(True, False)
group:
name: abc
non_unique: yes
Expand Down
Loading