mirror of
				https://github.com/linuxserver/docker-transmission.git
				synced 2025-10-31 08:55:47 +01:00 
			
		
		
		
	Bot Updating Templated Files
This commit is contained in:
		
							
								
								
									
										91
									
								
								Jenkinsfile
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										91
									
								
								Jenkinsfile
									
									
									
									
										vendored
									
									
								
							| @@ -42,10 +42,11 @@ pipeline { | |||||||
|     // Setup all the basic environment variables needed for the build |     // Setup all the basic environment variables needed for the build | ||||||
|     stage("Set ENV Variables base"){ |     stage("Set ENV Variables base"){ | ||||||
|       steps{ |       steps{ | ||||||
|  |         sh '''docker pull quay.io/skopeo/stable:v1 || : ''' | ||||||
|         script{ |         script{ | ||||||
|           env.EXIT_STATUS = '' |           env.EXIT_STATUS = '' | ||||||
|           env.LS_RELEASE = sh( |           env.LS_RELEASE = sh( | ||||||
|             script: '''docker run --rm ghcr.io/linuxserver/alexeiled-skopeo sh -c 'skopeo inspect docker://docker.io/'${DOCKERHUB_IMAGE}':latest 2>/dev/null' | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''', |             script: '''docker run --rm quay.io/skopeo/stable:v1 inspect docker://ghcr.io/${LS_USER}/${CONTAINER_NAME}:latest 2>/dev/null | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''', | ||||||
|             returnStdout: true).trim() |             returnStdout: true).trim() | ||||||
|           env.LS_RELEASE_NOTES = sh( |           env.LS_RELEASE_NOTES = sh( | ||||||
|             script: '''cat readme-vars.yml | awk -F \\" '/date: "[0-9][0-9].[0-9][0-9].[0-9][0-9]:/ {print $4;exit;}' | sed -E ':a;N;$!ba;s/\\r{0,1}\\n/\\\\n/g' ''', |             script: '''cat readme-vars.yml | awk -F \\" '/date: "[0-9][0-9].[0-9][0-9].[0-9][0-9]:/ {print $4;exit;}' | sed -E ':a;N;$!ba;s/\\r{0,1}\\n/\\\\n/g' ''', | ||||||
| @@ -232,7 +233,7 @@ pipeline { | |||||||
|           script{ |           script{ | ||||||
|             env.SHELLCHECK_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/shellcheck-result.xml' |             env.SHELLCHECK_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/shellcheck-result.xml' | ||||||
|           } |           } | ||||||
|           sh '''curl -sL https://raw.githubusercontent.com/linuxserver/docker-shellcheck/master/checkrun.sh | /bin/bash''' |           sh '''curl -sL https://raw.githubusercontent.com/linuxserver/docker-jenkins-builder/master/checkrun.sh | /bin/bash''' | ||||||
|           sh '''#! /bin/bash |           sh '''#! /bin/bash | ||||||
|                 docker run --rm \ |                 docker run --rm \ | ||||||
|                   -v ${WORKSPACE}:/mnt \ |                   -v ${WORKSPACE}:/mnt \ | ||||||
| @@ -380,6 +381,26 @@ pipeline { | |||||||
|         } |         } | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|  |     // If this is a master build check the S6 service file perms | ||||||
|  |     stage("Check S6 Service file Permissions"){ | ||||||
|  |       when { | ||||||
|  |         branch "master" | ||||||
|  |         environment name: 'CHANGE_ID', value: '' | ||||||
|  |         environment name: 'EXIT_STATUS', value: '' | ||||||
|  |       } | ||||||
|  |       steps { | ||||||
|  |         script{ | ||||||
|  |           sh '''#! /bin/bash | ||||||
|  |             WRONG_PERM=$(find ./  -path "./.git" -prune -o \\( -name "run" -o -name "finish" -o -name "check" \\) -not -perm -u=x,g=x,o=x -print) | ||||||
|  |             if [[ -n "${WRONG_PERM}" ]]; then | ||||||
|  |               echo "The following S6 service files are missing the executable bit; canceling the faulty build: ${WRONG_PERM}" | ||||||
|  |               exit 1 | ||||||
|  |             else | ||||||
|  |               echo "S6 service file perms look good." | ||||||
|  |             fi ''' | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     } | ||||||
|     /* ####################### |     /* ####################### | ||||||
|            GitLab Mirroring |            GitLab Mirroring | ||||||
|        ####################### */ |        ####################### */ | ||||||
| @@ -672,6 +693,7 @@ pipeline { | |||||||
|         ]) { |         ]) { | ||||||
|           script{ |           script{ | ||||||
|             env.CI_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/index.html' |             env.CI_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/index.html' | ||||||
|  |             env.CI_JSON_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/report.json' | ||||||
|           } |           } | ||||||
|           sh '''#! /bin/bash |           sh '''#! /bin/bash | ||||||
|                 set -e |                 set -e | ||||||
| @@ -698,8 +720,6 @@ pipeline { | |||||||
|                 -e WEB_SCREENSHOT=\"${CI_WEB}\" \ |                 -e WEB_SCREENSHOT=\"${CI_WEB}\" \ | ||||||
|                 -e WEB_AUTH=\"${CI_AUTH}\" \ |                 -e WEB_AUTH=\"${CI_AUTH}\" \ | ||||||
|                 -e WEB_PATH=\"${CI_WEBPATH}\" \ |                 -e WEB_PATH=\"${CI_WEBPATH}\" \ | ||||||
|                 -e DO_REGION="ams3" \ |  | ||||||
|                 -e DO_BUCKET="lsio-ci" \ |  | ||||||
|                 -t ghcr.io/linuxserver/ci:latest \ |                 -t ghcr.io/linuxserver/ci:latest \ | ||||||
|                 python3 test_build.py''' |                 python3 test_build.py''' | ||||||
|         } |         } | ||||||
| @@ -953,8 +973,67 @@ pipeline { | |||||||
|         environment name: 'EXIT_STATUS', value: '' |         environment name: 'EXIT_STATUS', value: '' | ||||||
|       } |       } | ||||||
|       steps { |       steps { | ||||||
|         sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/issues/${PULL_REQUEST}/comments \ |         sh '''#! /bin/bash | ||||||
|         -d '{"body": "I am a bot, here are the test results for this PR: \\n'${CI_URL}' \\n'${SHELLCHECK_URL}'"}' ''' |             # Function to retrieve JSON data from URL | ||||||
|  |             get_json() { | ||||||
|  |               local url="$1" | ||||||
|  |               local response=$(curl -s "$url") | ||||||
|  |               if [ $? -ne 0 ]; then | ||||||
|  |                 echo "Failed to retrieve JSON data from $url" | ||||||
|  |                 return 1 | ||||||
|  |               fi | ||||||
|  |               local json=$(echo "$response" | jq .) | ||||||
|  |               if [ $? -ne 0 ]; then | ||||||
|  |                 echo "Failed to parse JSON data from $url" | ||||||
|  |                 return 1 | ||||||
|  |               fi | ||||||
|  |               echo "$json" | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             build_table() { | ||||||
|  |               local data="$1" | ||||||
|  |  | ||||||
|  |               # Get the keys in the JSON data | ||||||
|  |               local keys=$(echo "$data" | jq -r 'to_entries | map(.key) | .[]') | ||||||
|  |  | ||||||
|  |               # Check if keys are empty | ||||||
|  |               if [ -z "$keys" ]; then | ||||||
|  |                 echo "JSON report data does not contain any keys or the report does not exist." | ||||||
|  |                 return 1 | ||||||
|  |               fi | ||||||
|  |  | ||||||
|  |               # Build table header | ||||||
|  |               local header="| Tag | Passed |\\n| --- | --- |\\n" | ||||||
|  |  | ||||||
|  |               # Loop through the JSON data to build the table rows | ||||||
|  |               local rows="" | ||||||
|  |               for build in $keys; do | ||||||
|  |                 local status=$(echo "$data" | jq -r ".[\\"$build\\"].test_success") | ||||||
|  |                 if [ "$status" = "true" ]; then | ||||||
|  |                   status="✅" | ||||||
|  |                 else | ||||||
|  |                   status="❌" | ||||||
|  |                 fi | ||||||
|  |                 local row="| "$build" | "$status" |\\n" | ||||||
|  |                 rows="${rows}${row}" | ||||||
|  |               done | ||||||
|  |  | ||||||
|  |               local table="${header}${rows}" | ||||||
|  |               local escaped_table=$(echo "$table" | sed 's/\"/\\\\"/g') | ||||||
|  |               echo "$escaped_table" | ||||||
|  |             } | ||||||
|  |  | ||||||
|  |             # Retrieve JSON data from URL | ||||||
|  |             data=$(get_json "$CI_JSON_URL") | ||||||
|  |             # Create table from JSON data | ||||||
|  |             table=$(build_table "$data") | ||||||
|  |             echo -e "$table" | ||||||
|  |  | ||||||
|  |             curl -X POST -H "Authorization: token $GITHUB_TOKEN" \ | ||||||
|  |               -H "Accept: application/vnd.github.v3+json" \ | ||||||
|  |               "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \ | ||||||
|  |               -d "{\\"body\\": \\"I am a bot, here are the test results for this PR: \\n${CI_URL}\\n${SHELLCHECK_URL}\\n${table}\\"}"''' | ||||||
|  |  | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user