From 1f1496b3c101b343503eff54a0dc61da2a97535b Mon Sep 17 00:00:00 2001 From: thespad Date: Tue, 3 Dec 2024 16:13:47 +0000 Subject: [PATCH 1/6] Fail build if any of the buldcache pushes fail --- roles/generate-jenkins/templates/Jenkinsfile.j2 | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/roles/generate-jenkins/templates/Jenkinsfile.j2 b/roles/generate-jenkins/templates/Jenkinsfile.j2 index e4106b61..0ed01af5 100644 --- a/roles/generate-jenkins/templates/Jenkinsfile.j2 +++ b/roles/generate-jenkins/templates/Jenkinsfile.j2 @@ -820,7 +820,9 @@ pipeline { for i in "${CACHE[@]}"; do docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} & done - wait + for p in $(jobs -p); do + wait "$p" || { echo "job $p failed" >&2; exit 1; } + done fi ''' } @@ -888,7 +890,9 @@ pipeline { for i in "${CACHE[@]}"; do docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} & done - wait + for p in $(jobs -p); do + wait "$p" || { echo "job $p failed" >&2; exit 1; } + done fi ''' } @@ -951,7 +955,9 @@ pipeline { for i in "${CACHE[@]}"; do docker push ${i}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} & done - wait + for p in $(jobs -p); do + wait "$p" || { echo "job $p failed" >&2; exit 1; } + done fi ''' } From 9bacab11fec9e9c46b120aa7372cbaeaa18b5676 Mon Sep 17 00:00:00 2001 From: thespad Date: Tue, 3 Dec 2024 20:41:54 +0000 Subject: [PATCH 2/6] Simplify release notes to a common output --- .../generate-jenkins/templates/Jenkinsfile.j2 | 25 ------------------- 1 file changed, 25 deletions(-) diff --git a/roles/generate-jenkins/templates/Jenkinsfile.j2 b/roles/generate-jenkins/templates/Jenkinsfile.j2 index e4106b61..c77bc8f2 100644 --- a/roles/generate-jenkins/templates/Jenkinsfile.j2 +++ b/roles/generate-jenkins/templates/Jenkinsfile.j2 @@ -1241,32 +1241,7 @@ pipeline { echo '{"tag_name":"'${META_TAG}'",\ "target_commitish": "{{ ls_branch }}",\ "name": "'${META_TAG}'",\ -{% if custom_version_command is defined %} - "body": "**CI Report:**\\n\\n'${CI_URL:-N/A}'\\n\\n**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Remote Changes:**\\n\\n' > start -{% endif %} -{% if external_type == "github_devel" %} - "body": "**CI Report:**\\n\\n'${CI_URL:-N/A}'\\n\\n**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**'${EXT_REPO}' Changes:**\\n\\n' > start -{% elif external_type == "github_stable" %} - "body": "**CI Report:**\\n\\n'${CI_URL:-N/A}'\\n\\n**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**'${EXT_REPO}' Changes:**\\n\\n' > start -{% elif external_type == "alpine_repo" %} - "body": "**CI Report:**\\n\\n'${CI_URL:-N/A}'\\n\\n**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Repo Changes:**\\n\\n' > start -{% elif external_type == "custom_json" %} "body": "**CI Report:**\\n\\n'${CI_URL:-N/A}'\\n\\n**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Remote Changes:**\\n\\n' > start -{% elif external_type == "deb_repo" %} - "body": "**CI Report:**\\n\\n'${CI_URL:-N/A}'\\n\\n**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Repo Changes:**\\n\\n' > start -{% elif external_type == "external_blob" %} - "body": "**CI Report:**\\n\\n'${CI_URL:-N/A}'\\n\\n**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Remote Changes:**\\n\\n' > start -{% elif external_type == "github_commit" %} - "body": "**CI Report:**\\n\\n'${CI_URL:-N/A}'\\n\\n**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**'${EXT_REPO}' Changes:**\\n\\n' > start -{% elif external_type == "gitlab_commit" %} - "body": "**CI Report:**\\n\\n'${CI_URL:-N/A}'\\n\\n**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**'${EXT_GITLAB_PROJ}' Changes:**\\n\\n' > start -{% elif external_type == "npm_version" %} - "body": "**CI Report:**\\n\\n'${CI_URL:-N/A}'\\n\\n**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**NPM Changes:**\\n\\n' > start -{% elif external_type == "os" %} - "body": "**CI Report:**\\n\\n'${CI_URL:-N/A}'\\n\\n**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**OS Changes:**\\n\\n' > start -{% elif external_type == "pip_version" %} - "body": "**CI Report:**\\n\\n'${CI_URL:-N/A}'\\n\\n**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**PIP Changes:**\\n\\n' > start -{% elif external_type == "custom" %} "body": "**CI Report:**\\n\\n'${CI_URL:-N/A}'\\n\\n**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Custom Changes:**\\n\\n' > start{% endif %} printf '","draft": false,"prerelease": {% if release_type == "stable" %}false{% elif release_type == "prerelease" %}true{% endif %}}' >> 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''' From 0c75528394f6bdaddac591668d59ec6c1d35f7e5 Mon Sep 17 00:00:00 2001 From: aptalca <541623+aptalca@users.noreply.github.com> Date: Wed, 4 Dec 2024 14:31:56 -0500 Subject: [PATCH 3/6] move kasmvnc blurb, clarify hw accel section --- roles/generate-jenkins/templates/DOCUMENTATION.j2 | 8 ++++---- roles/generate-jenkins/templates/README.j2 | 8 ++++---- roles/generate-jenkins/templates/README_SNIPPETS/KASM.j2 | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/roles/generate-jenkins/templates/DOCUMENTATION.j2 b/roles/generate-jenkins/templates/DOCUMENTATION.j2 index b94206ff..152b34a7 100644 --- a/roles/generate-jenkins/templates/DOCUMENTATION.j2 +++ b/roles/generate-jenkins/templates/DOCUMENTATION.j2 @@ -33,10 +33,6 @@ title: {{ project_name }} {% if app_setup_block_enabled %} {% include "README_SNIPPETS/APPLICATION_SETUP.j2" | trim %} -{% if kasm_blurb is defined %} -{% include "README_SNIPPETS/KASM.j2" | trim %} - -{% endif %} {% if readonly_supported is defined and readonly_supported %} {% include "README_SNIPPETS/READONLY.j2" | trim %} @@ -64,6 +60,10 @@ title: {{ project_name }} {% if readme_media is defined and readme_media %} {% include "README_SNIPPETS/MEDIA.j2" | trim %} +{% endif %} +{% if kasm_blurb is defined %} +{% include "README_SNIPPETS/KASM.j2" | trim %} + {% endif %} {% endif %} {% include "README_SNIPPETS/USAGE.j2" | trim %} diff --git a/roles/generate-jenkins/templates/README.j2 b/roles/generate-jenkins/templates/README.j2 index d62f713d..272e9e60 100644 --- a/roles/generate-jenkins/templates/README.j2 +++ b/roles/generate-jenkins/templates/README.j2 @@ -32,10 +32,6 @@ {% if app_setup_block_enabled %} {% include "README_SNIPPETS/APPLICATION_SETUP.j2" | trim %} -{% if kasm_blurb is defined %} -{% include "README_SNIPPETS/KASM.j2" | trim %} - -{% endif %} {% if readonly_supported is defined and readonly_supported %} {% include "README_SNIPPETS/READONLY.j2" | trim %} @@ -63,6 +59,10 @@ {% if readme_media is defined and readme_media %} {% include "README_SNIPPETS/MEDIA.j2" | trim %} +{% endif %} +{% if kasm_blurb is defined %} +{% include "README_SNIPPETS/KASM.j2" | trim %} + {% endif %} {% endif %} {% include "README_SNIPPETS/USAGE.j2" | trim %} diff --git a/roles/generate-jenkins/templates/README_SNIPPETS/KASM.j2 b/roles/generate-jenkins/templates/README_SNIPPETS/KASM.j2 index 21d41ecd..77d5600b 100644 --- a/roles/generate-jenkins/templates/README_SNIPPETS/KASM.j2 +++ b/roles/generate-jenkins/templates/README_SNIPPETS/KASM.j2 @@ -51,7 +51,7 @@ To install cjk fonts on startup as an example pass the environment variables (Al The web interface has the option for "IME Input Mode" in Settings which will allow non english characters to be used from a non en_US keyboard on the client. Once enabled it will perform the same as a local Linux installation set to your locale. -### DRI3 GPU Acceleration +### DRI3 GPU Acceleration (KasmVNC interface) For accelerated apps or games, render devices can be mounted into the container and leveraged by applications using: @@ -68,7 +68,7 @@ This feature only supports **Open Source** GPU drivers: The `DRINODE` environment variable can be used to point to a specific GPU. Up to date information can be found [here](https://www.kasmweb.com/kasmvnc/docs/master/gpu_acceleration.html) -{% if show_nvidia is defined %}### Nvidia GPU Support +{% if show_nvidia is defined %}### Nvidia GPU Support (KasmVNC interface) **Nvidia support is not compatible with Alpine based images as Alpine lacks Nvidia drivers** From a2d58874aa0a27fa00a2b387cdb281494c7d89c0 Mon Sep 17 00:00:00 2001 From: thespad Date: Thu, 5 Dec 2024 21:08:12 +0000 Subject: [PATCH 4/6] Enable SBOM & Provenance by default --- roles/generate-jenkins/defaults/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/generate-jenkins/defaults/main.yml b/roles/generate-jenkins/defaults/main.yml index 852ccdd4..58f50bf9 100644 --- a/roles/generate-jenkins/defaults/main.yml +++ b/roles/generate-jenkins/defaults/main.yml @@ -58,5 +58,5 @@ unraid_template_sync: true unraid_template: true armhf_native: false build_armhf: false -image_provenance: false -image_sbom: false +image_provenance: true +image_sbom: true From 1c31b5695d791e6f019eed33b87a45383cd82ed9 Mon Sep 17 00:00:00 2001 From: aptalca <541623+aptalca@users.noreply.github.com> Date: Wed, 11 Dec 2024 14:14:44 -0500 Subject: [PATCH 5/6] fix typo in external trigger --- roles/generate-jenkins/templates/EXTERNAL_TRIGGER.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/generate-jenkins/templates/EXTERNAL_TRIGGER.j2 b/roles/generate-jenkins/templates/EXTERNAL_TRIGGER.j2 index b6ab0007..257b2c77 100644 --- a/roles/generate-jenkins/templates/EXTERNAL_TRIGGER.j2 +++ b/roles/generate-jenkins/templates/EXTERNAL_TRIGGER.j2 @@ -182,7 +182,7 @@ jobs: else printf "\n## Trigger new build\n\n" >> $GITHUB_STEP_SUMMARY echo "New version \`${EXT_RELEASE}\` found; old version was \`${IMAGE_VERSION}\`. Triggering new build" >> $GITHUB_STEP_SUMMARY - if "${artifacts_found}" == "true" ]]; then + if [[ "${artifacts_found}" == "true" ]]; then echo "All artifacts seem to be uploaded." >> $GITHUB_STEP_SUMMARY fi response=$(curl -iX POST \ From 92e4ea0e316aa1f145e1cf2505467fac5ce92160 Mon Sep 17 00:00:00 2001 From: Roxedus Date: Thu, 12 Dec 2024 20:23:46 +0100 Subject: [PATCH 6/6] Add D2 graph to documentation --- roles/generate-jenkins/templates/DOCUMENTATION.j2 | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/roles/generate-jenkins/templates/DOCUMENTATION.j2 b/roles/generate-jenkins/templates/DOCUMENTATION.j2 index b94206ff..394c53ce 100644 --- a/roles/generate-jenkins/templates/DOCUMENTATION.j2 +++ b/roles/generate-jenkins/templates/DOCUMENTATION.j2 @@ -224,4 +224,14 @@ Containers are configured using parameters passed at runtime (such as those abov {% include "README_SNIPPETS/BUILDING_LOCALLY.j2" | trim %} +{% if init_diagram is defined and init_diagram %} +To help with development, we generate this dependency graph. + +??? info "Init dependency graph" + + ```d2 + {{ init_diagram | indent(4) | trim }} + ``` + +{% endif %} {% include "README_SNIPPETS/VERSIONS.j2" | trim %}