From a591261280b9fd06bc5f340cb22a60e8e39d96c3 Mon Sep 17 00:00:00 2001 From: aptalca <541623+aptalca@users.noreply.github.com> Date: Mon, 16 Dec 2024 11:39:43 -0500 Subject: [PATCH 1/8] Prune but don't remove buildx container --- .../generate-jenkins/templates/Jenkinsfile.j2 | 33 +++++++++++++++---- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/roles/generate-jenkins/templates/Jenkinsfile.j2 b/roles/generate-jenkins/templates/Jenkinsfile.j2 index 800bdd72..b987116e 100644 --- a/roles/generate-jenkins/templates/Jenkinsfile.j2 +++ b/roles/generate-jenkins/templates/Jenkinsfile.j2 @@ -42,11 +42,21 @@ pipeline { steps{ echo "Running on node: ${NODE_NAME}" sh '''#! /bin/bash - containers=$(docker ps -aq) + echo "Pruning builder" + docker builder prune -f --builder container || : + containers=$(docker ps -q) if [[ -n "${containers}" ]]; then - docker stop ${containers} + BUILDX_CONTAINER_ID=$(docker ps -qf 'name=buildx_buildkit') + for container in ${containers}; do + if [[ "${container}" == "${BUILDX_CONTAINER_ID}" ]]; then + echo "skipping buildx container in docker stop" + else + echo "Stopping container ${container}" + docker stop ${container} + fi + done fi - docker system prune -af --volumes || : ''' + docker system prune -f --volumes || : ''' script{ env.EXIT_STATUS = '' env.LS_RELEASE = sh( @@ -1447,12 +1457,21 @@ EOF } cleanup { sh '''#! /bin/bash - echo "Performing docker system prune!!" - containers=$(docker ps -aq) + echo "Pruning builder!!" + docker builder prune -f --builder container || : + containers=$(docker ps -q) if [[ -n "${containers}" ]]; then - docker stop ${containers} + BUILDX_CONTAINER_ID=$(docker ps -qf 'name=buildx_buildkit') + for container in ${containers}; do + if [[ "${container}" == "${BUILDX_CONTAINER_ID}" ]]; then + echo "skipping buildx container in docker stop" + else + echo "Stopping container ${container}" + docker stop ${container} + fi + done fi - docker system prune -af --volumes || : + docker system prune -f --volumes || : ''' cleanWs() } From c7cb9dfeecbbcfdeade856cbc202b28021b2ee81 Mon Sep 17 00:00:00 2001 From: thespad Date: Sat, 21 Dec 2024 13:40:39 +0000 Subject: [PATCH 2/8] Allow skipping specific versions of upstream projects --- roles/generate-jenkins/templates/EXTERNAL_TRIGGER.j2 | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/roles/generate-jenkins/templates/EXTERNAL_TRIGGER.j2 b/roles/generate-jenkins/templates/EXTERNAL_TRIGGER.j2 index cfe709d9..cd083e6f 100644 --- a/roles/generate-jenkins/templates/EXTERNAL_TRIGGER.j2 +++ b/roles/generate-jenkins/templates/EXTERNAL_TRIGGER.j2 @@ -23,7 +23,10 @@ jobs: run: | printf "# External trigger for {{ project_repo_name }}\n\n" >> $GITHUB_STEP_SUMMARY {% if custom_version_command is defined or external_type != "os" %} - if grep -q "^{{ project_name }}_{{ ls_branch }}" <<< "${SKIP_EXTERNAL_TRIGGER}"; then + if grep -q "^{{ project_name }}_{{ ls_branch }}_" <<< "${SKIP_EXTERNAL_TRIGGER}"; then + echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY + echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`{{ project_name }}_{{ ls_branch }}_\`; will skip trigger if version matches." >> $GITHUB_STEP_SUMMARY + elif grep -q "^{{ project_name }}_{{ ls_branch }}" <<< "${SKIP_EXTERNAL_TRIGGER}"; then echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`{{ project_name }}_{{ ls_branch }}\`; skipping trigger." >> $GITHUB_STEP_SUMMARY exit 0 @@ -88,6 +91,13 @@ jobs: echo "No external release, exiting" >> $GITHUB_STEP_SUMMARY exit 0 {% endif %} + if $SKIPVER=$(awk -NF '_' '{print $3}' <<< "${SKIP_EXTERNAL_TRIGGER}"); then + if [[ "${SKIPVER}" == ${EXT_RELEASE} ]]; then + echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY + echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` matches current external release; skipping trigger." >> $GITHUB_STEP_SUMMARY + exit 0 + fi + fi {% if custom_version_command is defined or external_type != "os" %} if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY From 1ff61d887c3874e9c7c9bdda6bac5dffc98e70d4 Mon Sep 17 00:00:00 2001 From: thespad Date: Sat, 21 Dec 2024 16:49:58 +0000 Subject: [PATCH 3/8] Fix comparison --- roles/generate-jenkins/templates/EXTERNAL_TRIGGER.j2 | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/roles/generate-jenkins/templates/EXTERNAL_TRIGGER.j2 b/roles/generate-jenkins/templates/EXTERNAL_TRIGGER.j2 index cd083e6f..f57e87af 100644 --- a/roles/generate-jenkins/templates/EXTERNAL_TRIGGER.j2 +++ b/roles/generate-jenkins/templates/EXTERNAL_TRIGGER.j2 @@ -91,12 +91,10 @@ jobs: echo "No external release, exiting" >> $GITHUB_STEP_SUMMARY exit 0 {% endif %} - if $SKIPVER=$(awk -NF '_' '{print $3}' <<< "${SKIP_EXTERNAL_TRIGGER}"); then - if [[ "${SKIPVER}" == ${EXT_RELEASE} ]]; then - echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY - echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` matches current external release; skipping trigger." >> $GITHUB_STEP_SUMMARY - exit 0 - fi + if grep -q "^{{ project_name }}_{{ ls_branch }}_${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 + exit 0 fi {% if custom_version_command is defined or external_type != "os" %} if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then From 7e6142122642a0f7cde6a8b5e8096bfd7874972a Mon Sep 17 00:00:00 2001 From: thespad Date: Fri, 17 Jan 2025 18:19:58 +0000 Subject: [PATCH 4/8] Update discord links, remove obsolete links --- vars/common | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/vars/common b/vars/common index 569a3890..5b70b45f 100644 --- a/vars/common +++ b/vars/common @@ -10,20 +10,17 @@ lsio_short_url: "{{ lsio_project_name }}" lsio_full_url: "https://{{ lsio_project_name }}" lsio_blog_url: "https://blog.{{ lsio_short_url }}" lsio_ci_url: "https://ci.{{ lsio_short_url }}" -lsio_discord_url: "https://discord.gg/YWrKVTn" +lsio_discord_url: "https://linuxserver.io/discord" lsio_discourse_url: "https://discourse.{{ lsio_short_url }}" lsio_docker_hub_url: "https://hub.docker.com/r/{{ lsio_project_name_short }}" lsio_docs_url: "https://docs.{{ lsio_short_url }}" lsio_fleet_url: "https://fleet.{{ lsio_short_url }}" lsio_github_url: "https://github.com/{{ lsio_project_name_short }}" lsio_gitlab_url: "https://gitlab.com/{{ lsio_project_name }}" -lsio_irc_url: "https://irc.{{ lsio_short_url }}" -lsio_microbadger_url: "https://microbadger.com/images/{{ lsio_project_name_short }}" lsio_mods_url: "https://mods.{{ lsio_short_url }}/?mod={{ project_name }}" lsio_universal_mods_url: "https://mods.{{ lsio_short_url }}/?mod=universal" lsio_object_url: "https://ci-tests.{{ lsio_short_url }}" lsio_opencollective_url: "https://opencollective.com/{{ lsio_project_name_short }}" -lsio_podcast_url: "https://anchor.fm/linuxserverio" # project defaults project_deprecation_status: false @@ -43,12 +40,9 @@ lsio_discord_desc: "realtime support / chat with the community and the team." lsio_discourse_desc: "post on our community forum." lsio_fleet_desc: "an online web interface which displays all of our maintained images." lsio_github_desc: "view the source for all of our repositories." -lsio_irc_desc: "on freenode at `#{{ lsio_project_name }}`. Our primary support channel is Discord." -lsio_microbadger_desc: "Get your own version badge on microbadger.com" lsio_mods_desc: "view available mods for this container." lsio_universal_mods_desc: "view available universal mods." lsio_opencollective_desc: "please consider helping us by either donating or contributing to our budget" -lsio_podcast_desc: "on hiatus. Coming back soon (late 2018)." # asset urls lsio_primary_logo_url: https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png From 7c5498b45fd76703fb018dfbede979abc2cf268a Mon Sep 17 00:00:00 2001 From: Roxedus Date: Thu, 23 Jan 2025 09:55:41 +0100 Subject: [PATCH 5/8] Categorize builder --- readme-vars.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/readme-vars.yml b/readme-vars.yml index fe4d5906..00889b53 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -1,6 +1,7 @@ --- # project information project_name: jenkins-builder +project_categories: "Internal" full_custom_readme: | {% raw -%} # linuxserver/jenkins-builder From 9ac934573895347aa42701ffff16bc437dddf1d3 Mon Sep 17 00:00:00 2001 From: Roxedus Date: Mon, 27 Jan 2025 10:07:12 +0100 Subject: [PATCH 6/8] Use project_categories --- roles/generate-jenkins/defaults/main.yml | 1 + roles/generate-jenkins/templates/DOCUMENTATION.j2 | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/roles/generate-jenkins/defaults/main.yml b/roles/generate-jenkins/defaults/main.yml index b6867deb..8402d8e0 100644 --- a/roles/generate-jenkins/defaults/main.yml +++ b/roles/generate-jenkins/defaults/main.yml @@ -61,3 +61,4 @@ build_armhf: false image_provenance: true image_sbom: true image_builder: 'container' +project_categories: "" diff --git a/roles/generate-jenkins/templates/DOCUMENTATION.j2 b/roles/generate-jenkins/templates/DOCUMENTATION.j2 index 30ce20b0..9a23f7e5 100644 --- a/roles/generate-jenkins/templates/DOCUMENTATION.j2 +++ b/roles/generate-jenkins/templates/DOCUMENTATION.j2 @@ -4,6 +4,13 @@ {%- set has_latest= true if (development_versions == true and 'latest' in (development_versions_items | map(attribute="tag"))) or (development_versions == false) else false -%} --- title: {{ project_name }} +{% if project_categories %} +tags: +{% for tag in project_categories.split(",") %} + - {{ tag | title }} +{% endfor %} +{% endif %} +description: "{{ noter(project_blurb) | trim }}" --- {% include "README_SNIPPETS/DO_NOT_EDIT.j2" | trim %} {% if project_deprecation_status %} From 70e1008203e9e7370fb805523ed96dd1511bc549 Mon Sep 17 00:00:00 2001 From: Roxedus Date: Mon, 27 Jan 2025 10:38:51 +0100 Subject: [PATCH 7/8] Project blurb custom_readme --- roles/generate-jenkins/templates/DOCUMENTATION.j2-CUSTOM | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/roles/generate-jenkins/templates/DOCUMENTATION.j2-CUSTOM b/roles/generate-jenkins/templates/DOCUMENTATION.j2-CUSTOM index 0549e268..12cde700 100644 --- a/roles/generate-jenkins/templates/DOCUMENTATION.j2-CUSTOM +++ b/roles/generate-jenkins/templates/DOCUMENTATION.j2-CUSTOM @@ -2,6 +2,13 @@ {% from 'common_macros.j2' import noter with context %} --- title: {{ project_name }} +{% if project_categories and project_blurb %} +tags: +{% for tag in project_categories.split(",") %} + - {{ tag | title }} +{% endfor %} +description: "{{ noter(project_blurb) | trim }}" +{% endif %} --- {% include "README_SNIPPETS/DO_NOT_EDIT.j2" | trim %} From ea2905606fd7b6b2320294e7e082a95877a7d601 Mon Sep 17 00:00:00 2001 From: Roxedus Date: Mon, 27 Jan 2025 10:42:25 +0100 Subject: [PATCH 8/8] Catch undefined vars --- roles/generate-jenkins/templates/DOCUMENTATION.j2-CUSTOM | 2 ++ 1 file changed, 2 insertions(+) diff --git a/roles/generate-jenkins/templates/DOCUMENTATION.j2-CUSTOM b/roles/generate-jenkins/templates/DOCUMENTATION.j2-CUSTOM index 12cde700..bd1817fe 100644 --- a/roles/generate-jenkins/templates/DOCUMENTATION.j2-CUSTOM +++ b/roles/generate-jenkins/templates/DOCUMENTATION.j2-CUSTOM @@ -2,6 +2,7 @@ {% from 'common_macros.j2' import noter with context %} --- title: {{ project_name }} +{% if project_categories is defined and project_blurb is defined %} {% if project_categories and project_blurb %} tags: {% for tag in project_categories.split(",") %} @@ -9,6 +10,7 @@ tags: {% endfor %} description: "{{ noter(project_blurb) | trim }}" {% endif %} +{% endif %} --- {% include "README_SNIPPETS/DO_NOT_EDIT.j2" | trim %}