diff --git a/roles/generate-jenkins/defaults/main.yml b/roles/generate-jenkins/defaults/main.yml index b7bb8e81..b6867deb 100644 --- a/roles/generate-jenkins/defaults/main.yml +++ b/roles/generate-jenkins/defaults/main.yml @@ -58,6 +58,6 @@ 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 image_builder: 'container' diff --git a/roles/generate-jenkins/templates/DOCUMENTATION.j2 b/roles/generate-jenkins/templates/DOCUMENTATION.j2 index b94206ff..30ce20b0 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 %} @@ -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 %} 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 \ diff --git a/roles/generate-jenkins/templates/Jenkinsfile.j2 b/roles/generate-jenkins/templates/Jenkinsfile.j2 index 6ac24618..800bdd72 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 ''' } @@ -1241,32 +1247,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''' 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**