From 04047b65cce58741862a847fab56f16cc83d3e54 Mon Sep 17 00:00:00 2001 From: aptalca <541623+aptalca@users.noreply.github.com> Date: Fri, 22 Nov 2024 17:38:54 -0500 Subject: [PATCH 1/4] add init diagram to readme-vars.yml --- roles/generate-jenkins/templates/Jenkinsfile.j2 | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/roles/generate-jenkins/templates/Jenkinsfile.j2 b/roles/generate-jenkins/templates/Jenkinsfile.j2 index bc555040..8b428fe2 100644 --- a/roles/generate-jenkins/templates/Jenkinsfile.j2 +++ b/roles/generate-jenkins/templates/Jenkinsfile.j2 @@ -522,6 +522,22 @@ pipeline { echo "No templates to delete" fi echo "Starting Stage 3 - Update templates" +{% if full_custom_readme is not defined and (init_diagram is not defined or init_diagram) %} + if ! grep -q 'init_diagram:' ${TEMPDIR}/docker-${CONTAINER_NAME}/readme-vars.yml; then + echo "Adding the key 'init_diagram' to readme-vars.yml" + sed -i '\\|^#.*changelog.*$|d' ${TEMPDIR}/docker-${CONTAINER_NAME}/readme-vars.yml + sed -i 's|^changelogs:|# init diagram\\ninit_diagram:\\n\\n# changelog\\nchangelogs:|' ${TEMPDIR}/docker-${CONTAINER_NAME}/readme-vars.yml + cp ${TEMPDIR}/docker-${CONTAINER_NAME}/readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/readme-vars.yml + fi + docker run -d --rm -v /tmp/d2:/output -e PUID=$(id -u) -e PGID=$(id -g) ghcr.io/linuxserver/d2-builder:latest ${CONTAINER_NAME}:{{ ls_branch }} + yq -ei '.init_diagram |= load_str("/tmp/d2/${CONTAINER_NAME}-{{ ls_branch }}.d2")' ${TEMPDIR}/docker-${CONTAINER_NAME}/readme-vars.yml + if [[ $(grep -hs ^ ${TEMPDIR}/docker-${CONTAINER_NAME}/readme-vars.yml | md5sum | cut -c1-8) != $(grep -hs ^ ${TEMPDIR}/repo/${LS_REPO}/readme-vars.yml | md5sum | cut -c1-8) ]]; then + echo "'init_diagram' has been updated. Re-running jenkins builder." + docker run --rm -v ${TEMPDIR}/docker-${CONTAINER_NAME}:/tmp -e LOCAL=true -e PUID=$(id -u) -e PGID=$(id -g) {% if project_repo_name != "docker-jenkins-builder" %}ghcr.io/linuxserver/jenkins-builder:latest{% else %}jenkinslocal:${COMMIT_SHA}-${BUILD_NUMBER}{% endif %}{{ ' ' }} + cp ${TEMPDIR}/docker-${CONTAINER_NAME}/readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/readme-vars.yml + fi + rm -rf /tmp/d2 +{% endif %} CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8) cd ${TEMPDIR}/docker-${CONTAINER_NAME} NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8) From 329b0459956d5e0e88b3c44f9fb1b5b12ef2ec55 Mon Sep 17 00:00:00 2001 From: aptalca <541623+aptalca@users.noreply.github.com> Date: Fri, 22 Nov 2024 19:30:39 -0500 Subject: [PATCH 2/4] commit changes to readme-vars.yml even if readme doesn't get updated --- .../generate-jenkins/templates/Jenkinsfile.j2 | 37 +++++++++++++------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/roles/generate-jenkins/templates/Jenkinsfile.j2 b/roles/generate-jenkins/templates/Jenkinsfile.j2 index 8b428fe2..8a303ccb 100644 --- a/roles/generate-jenkins/templates/Jenkinsfile.j2 +++ b/roles/generate-jenkins/templates/Jenkinsfile.j2 @@ -521,23 +521,36 @@ pipeline { else echo "No templates to delete" fi - echo "Starting Stage 3 - Update templates" {% if full_custom_readme is not defined and (init_diagram is not defined or init_diagram) %} - if ! grep -q 'init_diagram:' ${TEMPDIR}/docker-${CONTAINER_NAME}/readme-vars.yml; then + echo "Starting Stage 2.5 - Update init diagram" + if ! grep -q 'init_diagram:' readme-vars.yml; then echo "Adding the key 'init_diagram' to readme-vars.yml" - sed -i '\\|^#.*changelog.*$|d' ${TEMPDIR}/docker-${CONTAINER_NAME}/readme-vars.yml - sed -i 's|^changelogs:|# init diagram\\ninit_diagram:\\n\\n# changelog\\nchangelogs:|' ${TEMPDIR}/docker-${CONTAINER_NAME}/readme-vars.yml - cp ${TEMPDIR}/docker-${CONTAINER_NAME}/readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/readme-vars.yml + sed -i '\\|^#.*changelog.*$|d' readme-vars.yml + sed -i 's|^changelogs:|# init diagram\\ninit_diagram:\\n\\n# changelog\\nchangelogs:|' readme-vars.yml fi - docker run -d --rm -v /tmp/d2:/output -e PUID=$(id -u) -e PGID=$(id -g) ghcr.io/linuxserver/d2-builder:latest ${CONTAINER_NAME}:{{ ls_branch }} - yq -ei '.init_diagram |= load_str("/tmp/d2/${CONTAINER_NAME}-{{ ls_branch }}.d2")' ${TEMPDIR}/docker-${CONTAINER_NAME}/readme-vars.yml - if [[ $(grep -hs ^ ${TEMPDIR}/docker-${CONTAINER_NAME}/readme-vars.yml | md5sum | cut -c1-8) != $(grep -hs ^ ${TEMPDIR}/repo/${LS_REPO}/readme-vars.yml | md5sum | cut -c1-8) ]]; then - echo "'init_diagram' has been updated. Re-running jenkins builder." - docker run --rm -v ${TEMPDIR}/docker-${CONTAINER_NAME}:/tmp -e LOCAL=true -e PUID=$(id -u) -e PGID=$(id -g) {% if project_repo_name != "docker-jenkins-builder" %}ghcr.io/linuxserver/jenkins-builder:latest{% else %}jenkinslocal:${COMMIT_SHA}-${BUILD_NUMBER}{% endif %}{{ ' ' }} - cp ${TEMPDIR}/docker-${CONTAINER_NAME}/readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/readme-vars.yml + docker run -d --rm -v ${TEMPDIR}/d2:/output -e PUID=$(id -u) -e PGID=$(id -g) ghcr.io/linuxserver/d2-builder:latest ${CONTAINER_NAME}:{{ ls_branch }} + yq -ei '.init_diagram |= load_str("${TEMPDIR}/d2/${CONTAINER_NAME}-{{ ls_branch }}.d2")' readme-vars.yml || : + if [[ $(grep -hs ^ readme-vars.yml | md5sum | cut -c1-8) != $(grep -hs ^ ${TEMPDIR}/docker-${CONTAINER_NAME}/readme-vars.yml | md5sum | cut -c1-8) ]]; then + echo "'init_diagram' has been updated. Updating repo and exiting build, new one will trigger based on commit." + mkdir -p ${TEMPDIR}/repo + git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO} + cd ${TEMPDIR}/repo/${LS_REPO} + git checkout -f {{ ls_branch }} + cp ${WORKSPACE}/readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/readme-vars.yml + git add readme-vars.yml + git commit -m 'Bot Updating Templated Files' + git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git {{ ls_branch }} + git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git {{ ls_branch }} + echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} + echo "Updating templates and exiting build, new one will trigger based on commit" + rm -Rf ${TEMPDIR} + exit 0 + else + echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER} + echo "Init diagram is unchanged" fi - rm -rf /tmp/d2 {% endif %} + echo "Starting Stage 3 - Update templates" CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8) cd ${TEMPDIR}/docker-${CONTAINER_NAME} NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8) From 6dd3388a8736a8a2a884f3fccc82c15fd8784352 Mon Sep 17 00:00:00 2001 From: aptalca <541623+aptalca@users.noreply.github.com> Date: Sat, 23 Nov 2024 19:05:02 -0500 Subject: [PATCH 3/4] use tag instead of branch in d2-builder docker run, fix quotes --- roles/generate-jenkins/templates/Jenkinsfile.j2 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/generate-jenkins/templates/Jenkinsfile.j2 b/roles/generate-jenkins/templates/Jenkinsfile.j2 index 8a303ccb..cf8abfb3 100644 --- a/roles/generate-jenkins/templates/Jenkinsfile.j2 +++ b/roles/generate-jenkins/templates/Jenkinsfile.j2 @@ -528,8 +528,8 @@ pipeline { sed -i '\\|^#.*changelog.*$|d' readme-vars.yml sed -i 's|^changelogs:|# init diagram\\ninit_diagram:\\n\\n# changelog\\nchangelogs:|' readme-vars.yml fi - docker run -d --rm -v ${TEMPDIR}/d2:/output -e PUID=$(id -u) -e PGID=$(id -g) ghcr.io/linuxserver/d2-builder:latest ${CONTAINER_NAME}:{{ ls_branch }} - yq -ei '.init_diagram |= load_str("${TEMPDIR}/d2/${CONTAINER_NAME}-{{ ls_branch }}.d2")' readme-vars.yml || : + docker run -d --rm -v ${TEMPDIR}/d2:/output -e PUID=$(id -u) -e PGID=$(id -g) ghcr.io/linuxserver/d2-builder:latest ${CONTAINER_NAME}:{{ release_tag }} + yq -ei ".init_diagram |= load_str(\\"${TEMPDIR}/d2/${CONTAINER_NAME}-{{ ls_branch }}.d2\\")" readme-vars.yml || : if [[ $(grep -hs ^ readme-vars.yml | md5sum | cut -c1-8) != $(grep -hs ^ ${TEMPDIR}/docker-${CONTAINER_NAME}/readme-vars.yml | md5sum | cut -c1-8) ]]; then echo "'init_diagram' has been updated. Updating repo and exiting build, new one will trigger based on commit." mkdir -p ${TEMPDIR}/repo From 7a8c2ee8f4246a5b8014cdd31436c69ee162049e Mon Sep 17 00:00:00 2001 From: aptalca <541623+aptalca@users.noreply.github.com> Date: Sun, 24 Nov 2024 20:36:33 -0500 Subject: [PATCH 4/4] precreate folder to prevent perm issues, fix d2 filename, don't generate svg --- roles/generate-jenkins/templates/Jenkinsfile.j2 | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/roles/generate-jenkins/templates/Jenkinsfile.j2 b/roles/generate-jenkins/templates/Jenkinsfile.j2 index cf8abfb3..1e972bdb 100644 --- a/roles/generate-jenkins/templates/Jenkinsfile.j2 +++ b/roles/generate-jenkins/templates/Jenkinsfile.j2 @@ -528,9 +528,10 @@ pipeline { sed -i '\\|^#.*changelog.*$|d' readme-vars.yml sed -i 's|^changelogs:|# init diagram\\ninit_diagram:\\n\\n# changelog\\nchangelogs:|' readme-vars.yml fi - docker run -d --rm -v ${TEMPDIR}/d2:/output -e PUID=$(id -u) -e PGID=$(id -g) ghcr.io/linuxserver/d2-builder:latest ${CONTAINER_NAME}:{{ release_tag }} - yq -ei ".init_diagram |= load_str(\\"${TEMPDIR}/d2/${CONTAINER_NAME}-{{ ls_branch }}.d2\\")" readme-vars.yml || : - if [[ $(grep -hs ^ readme-vars.yml | md5sum | cut -c1-8) != $(grep -hs ^ ${TEMPDIR}/docker-${CONTAINER_NAME}/readme-vars.yml | md5sum | cut -c1-8) ]]; then + mkdir -p ${TEMPDIR}/d2 + docker run -d --rm -v ${TEMPDIR}/d2:/output -e PUID=$(id -u) -e PGID=$(id -g) -e RAW="true" ghcr.io/linuxserver/d2-builder:latest ${CONTAINER_NAME}:{{ release_tag }} + yq -ei ".init_diagram |= load_str(\\"${TEMPDIR}/d2/${CONTAINER_NAME}-{{ release_tag }}.d2\\")" readme-vars.yml || : + if [[ $(md5sum readme-vars.yml | cut -c1-8) != $(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/readme-vars.yml | cut -c1-8) ]]; then echo "'init_diagram' has been updated. Updating repo and exiting build, new one will trigger based on commit." mkdir -p ${TEMPDIR}/repo git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}