From 99ed0bd6b40129fa6ceeb7e3b1fc7231f2dda761 Mon Sep 17 00:00:00 2001 From: thelamer Date: Tue, 22 Sep 2026 12:26:10 -0400 Subject: [PATCH 1/2] ingest how developers recommend due to mobile only releases --- .github/workflows/external_trigger.yml | 5 ++-- Dockerfile | 5 ++-- Dockerfile.aarch64 | 5 ++-- Jenkinsfile | 32 ++++++++++---------------- jenkins-vars.yml | 6 ++--- root/usr/bin/obsidian | 6 ++--- 6 files changed, 26 insertions(+), 33 deletions(-) diff --git a/.github/workflows/external_trigger.yml b/.github/workflows/external_trigger.yml index ada3058..f28e883 100644 --- a/.github/workflows/external_trigger.yml +++ b/.github/workflows/external_trigger.yml @@ -29,8 +29,9 @@ jobs: echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY echo "> External trigger running off of main branch. To disable this trigger, add \`obsidian_main\` into the Github organizational variable \`SKIP_EXTERNAL_TRIGGER\`." >> $GITHUB_STEP_SUMMARY printf "\n## Retrieving external version\n\n" >> $GITHUB_STEP_SUMMARY - EXT_RELEASE=$(curl -u "${{ secrets.CR_USER }}:${{ secrets.CR_PAT }}" -sX GET "https://api.github.com/repos/obsidianmd/obsidian-releases/releases/latest" | jq -r '. | .tag_name') - echo "Type is \`github_stable\`" >> $GITHUB_STEP_SUMMARY + EXT_RELEASE=$(curl -u ${{ secrets.CR_USER }}:${{ secrets.CR_PAT }} -sL "https://api.github.com/repos/obsidianmd/obsidian-releases/releases?per_page=30" | jq -r '[.[] | select(.prerelease==false and .draft==false) | select(any(.assets[]; .name | test("^Obsidian-[0-9.]+\.AppImage$")))][0].tag_name' +) + echo "Type is \`custom_version_command\`" >> $GITHUB_STEP_SUMMARY if grep -q "^obsidian_main_${EXT_RELEASE}" <<< "${SKIP_EXTERNAL_TRIGGER}"; then echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` matches current external release; skipping trigger." >> $GITHUB_STEP_SUMMARY diff --git a/Dockerfile b/Dockerfile index 7acdfe7..b3bcab4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,7 +23,8 @@ RUN \ DEBIAN_FRONTEND=noninteractive \ echo "**** install obsidian ****" && \ if [ -z ${OBSIDIAN_VERSION+x} ]; then \ - OBSIDIAN_VERSION=$(curl -sX GET "https://api.github.com/repos/obsidianmd/obsidian-releases/releases/latest"| jq -r '.tag_name'); \ + OBSIDIAN_VERSION=$(curl -sL "https://api.github.com/repos/obsidianmd/obsidian-releases/releases?per_page=30" \ + | jq -r '[.[] | select(.prerelease==false and .draft==false) | select(any(.assets[]; .name | test("^Obsidian-[0-9.]+\\.AppImage$")))][0].tag_name'); \ fi && \ apt-get install -y --no-install-recommends \ chromium \ @@ -57,5 +58,5 @@ RUN \ COPY /root / # ports and volumes -EXPOSE 3000 +EXPOSE 3001 VOLUME /config diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index ef0a7fe..1c5cedf 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -23,7 +23,8 @@ RUN \ DEBIAN_FRONTEND=noninteractive \ echo "**** install obsidian ****" && \ if [ -z ${OBSIDIAN_VERSION+x} ]; then \ - OBSIDIAN_VERSION=$(curl -sX GET "https://api.github.com/repos/obsidianmd/obsidian-releases/releases/latest"| jq -r '.tag_name'); \ + OBSIDIAN_VERSION=$(curl -sL "https://api.github.com/repos/obsidianmd/obsidian-releases/releases?per_page=30" \ + | jq -r '[.[] | select(.prerelease==false and .draft==false) | select(any(.assets[]; .name | test("^Obsidian-[0-9.]+\\.AppImage$")))][0].tag_name'); \ fi && \ apt-get install -y --no-install-recommends \ chromium \ @@ -57,5 +58,5 @@ RUN \ COPY /root / # ports and volumes -EXPOSE 3000 +EXPOSE 3001 VOLUME /config diff --git a/Jenkinsfile b/Jenkinsfile index 70f8471..d9c7e3c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -19,8 +19,6 @@ pipeline { DOCKERHUB_TOKEN=credentials('docker-hub-ci-pat') QUAYIO_API_TOKEN=credentials('quayio-repo-api-token') GIT_SIGNING_KEY=credentials('484fbca6-9a4f-455e-b9e3-97ac98785f5f') - EXT_USER = 'obsidianmd' - EXT_REPO = 'obsidian-releases' BUILD_VERSION_ARG = 'OBSIDIAN_VERSION' LS_USER = 'linuxserver' LS_REPO = 'docker-obsidian' @@ -146,23 +144,17 @@ pipeline { /* ######################## External Release Tagging ######################## */ - // If this is a stable github release use the latest endpoint from github to determine the ext tag - stage("Set ENV github_stable"){ - steps{ - script{ - env.EXT_RELEASE = sh( - 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() - } - } - } - // If this is a stable or devel github release generate the link for the build message - stage("Set ENV github_link"){ - steps{ - script{ - env.RELEASE_LINK = 'https://github.com/' + env.EXT_USER + '/' + env.EXT_REPO + '/releases/tag/' + env.EXT_RELEASE - } - } + // If this is a custom command to determine version use that command + stage("Set tag custom bash"){ + steps{ + script{ + env.EXT_RELEASE = sh( + script: ''' curl -sL "https://api.github.com/repos/obsidianmd/obsidian-releases/releases?per_page=30" | jq -r '[.[] | select(.prerelease==false and .draft==false) | select(any(.assets[]; .name | test("^Obsidian-[0-9.]+\\.AppImage$")))][0].tag_name' + ''', + returnStdout: true).trim() + env.RELEASE_LINK = 'custom_command' + } + } } // Sanitize the release tag and strip illegal docker or github characters stage("Sanitize tag"){ @@ -1042,7 +1034,7 @@ pipeline { "type": "commit",\ "tagger": {"name": "LinuxServer-CI","email": "ci@linuxserver.io","date": "'${GITHUB_DATE}'"}}' echo "Pushing New release for Tag" - curl -H "Authorization: token ${GITHUB_TOKEN}" -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases/latest | jq -r '. |.body' > releasebody.json + echo "Updating to ${EXT_RELEASE_CLEAN}" > releasebody.json jq -n \ --arg tag_name "$META_TAG" \ --arg target_commitish "main" \ diff --git a/jenkins-vars.yml b/jenkins-vars.yml index c008d04..a3145c8 100644 --- a/jenkins-vars.yml +++ b/jenkins-vars.yml @@ -2,7 +2,9 @@ # jenkins variables project_name: docker-obsidian -external_type: github_stable +external_type: na +custom_version_command: | + curl -sL "https://api.github.com/repos/obsidianmd/obsidian-releases/releases?per_page=30" | jq -r '[.[] | select(.prerelease==false and .draft==false) | select(any(.assets[]; .name | test("^Obsidian-[0-9.]+\\.AppImage$")))][0].tag_name' release_type: stable release_tag: latest ls_branch: main @@ -15,8 +17,6 @@ external_artifact_check: | artifacts_found="false" fi repo_vars: - - EXT_USER = 'obsidianmd' - - EXT_REPO = 'obsidian-releases' - BUILD_VERSION_ARG = 'OBSIDIAN_VERSION' - LS_USER = 'linuxserver' - LS_REPO = 'docker-obsidian' diff --git a/root/usr/bin/obsidian b/root/usr/bin/obsidian index 2d3d3c6..2470a83 100755 --- a/root/usr/bin/obsidian +++ b/root/usr/bin/obsidian @@ -3,10 +3,8 @@ BIN=/opt/obsidian/obsidian # Wayland check -if ls -l /dev/dri/* > /dev/null 2>&1; then - if pgrep labwc > /dev/null 2>&1; then - WAYLAND="--ozone-platform=wayland" - fi +if [ "${PIXELFLUX_WAYLAND,,}" == "true" ]; then + WAYLAND="--ozone-platform=wayland" fi ${BIN} \ From 74a679b33b74679be140e1d49e3a53fa467ebc88 Mon Sep 17 00:00:00 2001 From: thelamer Date: Tue, 22 Sep 2026 12:49:09 -0400 Subject: [PATCH 2/2] escape strings --- .github/workflows/external_trigger.yml | 2 +- Jenkinsfile | 2 +- jenkins-vars.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/external_trigger.yml b/.github/workflows/external_trigger.yml index f28e883..84310a4 100644 --- a/.github/workflows/external_trigger.yml +++ b/.github/workflows/external_trigger.yml @@ -29,7 +29,7 @@ jobs: echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY echo "> External trigger running off of main branch. To disable this trigger, add \`obsidian_main\` into the Github organizational variable \`SKIP_EXTERNAL_TRIGGER\`." >> $GITHUB_STEP_SUMMARY printf "\n## Retrieving external version\n\n" >> $GITHUB_STEP_SUMMARY - EXT_RELEASE=$(curl -u ${{ secrets.CR_USER }}:${{ secrets.CR_PAT }} -sL "https://api.github.com/repos/obsidianmd/obsidian-releases/releases?per_page=30" | jq -r '[.[] | select(.prerelease==false and .draft==false) | select(any(.assets[]; .name | test("^Obsidian-[0-9.]+\.AppImage$")))][0].tag_name' + EXT_RELEASE=$(curl -u ${{ secrets.CR_USER }}:${{ secrets.CR_PAT }} -sL "https://api.github.com/repos/obsidianmd/obsidian-releases/releases?per_page=30" | jq -r '[.[] | select(.prerelease==false and .draft==false) | select(any(.assets[]; .name | test("^Obsidian-[0-9.]+\\.AppImage$")))][0].tag_name' ) echo "Type is \`custom_version_command\`" >> $GITHUB_STEP_SUMMARY if grep -q "^obsidian_main_${EXT_RELEASE}" <<< "${SKIP_EXTERNAL_TRIGGER}"; then diff --git a/Jenkinsfile b/Jenkinsfile index d9c7e3c..d351c0b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -149,7 +149,7 @@ pipeline { steps{ script{ env.EXT_RELEASE = sh( - script: ''' curl -sL "https://api.github.com/repos/obsidianmd/obsidian-releases/releases?per_page=30" | jq -r '[.[] | select(.prerelease==false and .draft==false) | select(any(.assets[]; .name | test("^Obsidian-[0-9.]+\\.AppImage$")))][0].tag_name' + script: ''' curl -sL "https://api.github.com/repos/obsidianmd/obsidian-releases/releases?per_page=30" | jq -r '[.[] | select(.prerelease==false and .draft==false) | select(any(.assets[]; .name | test("^Obsidian-[0-9.]+\\\\.AppImage$")))][0].tag_name' ''', returnStdout: true).trim() env.RELEASE_LINK = 'custom_command' diff --git a/jenkins-vars.yml b/jenkins-vars.yml index a3145c8..3a2751a 100644 --- a/jenkins-vars.yml +++ b/jenkins-vars.yml @@ -4,7 +4,7 @@ project_name: docker-obsidian external_type: na custom_version_command: | - curl -sL "https://api.github.com/repos/obsidianmd/obsidian-releases/releases?per_page=30" | jq -r '[.[] | select(.prerelease==false and .draft==false) | select(any(.assets[]; .name | test("^Obsidian-[0-9.]+\\.AppImage$")))][0].tag_name' + curl -sL "https://api.github.com/repos/obsidianmd/obsidian-releases/releases?per_page=30" | jq -r '[.[] | select(.prerelease==false and .draft==false) | select(any(.assets[]; .name | test("^Obsidian-[0-9.]+\\\\.AppImage$")))][0].tag_name' release_type: stable release_tag: latest ls_branch: main