mirror of
				https://github.com/linuxserver/docker-swag.git
				synced 2025-11-04 15:02:38 +09:00 
			
		
		
		
	Bot Updating Templated Files
This commit is contained in:
		
							
								
								
									
										105
									
								
								Jenkinsfile
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										105
									
								
								Jenkinsfile
									
									
									
									
										vendored
									
									
								
							@@ -40,7 +40,12 @@ 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 || : '''
 | 
					        sh '''#! /bin/bash
 | 
				
			||||||
 | 
					              containers=$(docker ps -aq)
 | 
				
			||||||
 | 
					              if [[ -n "${containers}" ]]; then
 | 
				
			||||||
 | 
					                docker stop ${containers}
 | 
				
			||||||
 | 
					              fi
 | 
				
			||||||
 | 
					              docker system prune -af --volumes || : '''
 | 
				
			||||||
        script{
 | 
					        script{
 | 
				
			||||||
          env.EXIT_STATUS = ''
 | 
					          env.EXIT_STATUS = ''
 | 
				
			||||||
          env.LS_RELEASE = sh(
 | 
					          env.LS_RELEASE = sh(
 | 
				
			||||||
@@ -204,12 +209,12 @@ pipeline {
 | 
				
			|||||||
          env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
 | 
					          env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
 | 
				
			||||||
          env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME
 | 
					          env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME
 | 
				
			||||||
          if (env.MULTIARCH == 'true') {
 | 
					          if (env.MULTIARCH == 'true') {
 | 
				
			||||||
            env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
 | 
					            env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm32v7-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
 | 
				
			||||||
          } else {
 | 
					          } else {
 | 
				
			||||||
            env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
 | 
					            env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
          env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
 | 
					          env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
 | 
				
			||||||
          env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
 | 
					          env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
 | 
				
			||||||
          env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
 | 
					          env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
 | 
				
			||||||
          env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST
 | 
					          env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST
 | 
				
			||||||
          env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/'
 | 
					          env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/'
 | 
				
			||||||
@@ -337,6 +342,8 @@ pipeline {
 | 
				
			|||||||
              git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates
 | 
					              git clone https://github.com/linuxserver/templates.git ${TEMPDIR}/unraid/templates
 | 
				
			||||||
              if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then
 | 
					              if [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-logo.png ]]; then
 | 
				
			||||||
                sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-logo.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
 | 
					                sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-logo.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
 | 
				
			||||||
 | 
					              elif [[ -f ${TEMPDIR}/unraid/docker-templates/linuxserver.io/img/${CONTAINER_NAME}-icon.png ]]; then
 | 
				
			||||||
 | 
					                sed -i "s|master/linuxserver.io/img/linuxserver-ls-logo.png|master/linuxserver.io/img/${CONTAINER_NAME}-icon.png|" ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml
 | 
				
			||||||
              fi
 | 
					              fi
 | 
				
			||||||
              if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -f ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml) || ("$(md5sum ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | awk '{ print $1 }')") ]]; then
 | 
					              if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -f ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml) || ("$(md5sum ${TEMPDIR}/unraid/templates/unraid/${CONTAINER_NAME}.xml | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/${CONTAINER_NAME}.xml | awk '{ print $1 }')") ]]; then
 | 
				
			||||||
                cd ${TEMPDIR}/unraid/templates/
 | 
					                cd ${TEMPDIR}/unraid/templates/
 | 
				
			||||||
@@ -428,8 +435,7 @@ pipeline {
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
      steps{
 | 
					      steps{
 | 
				
			||||||
        sh '''#! /bin/bash
 | 
					        sh '''#! /bin/bash
 | 
				
			||||||
              set -e
 | 
					              PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/swag") | .uuid' || :)
 | 
				
			||||||
              PACKAGE_UUID=$(curl -X GET -H "Authorization: Bearer ${SCARF_TOKEN}" https://scarf.sh/api/v1/organizations/linuxserver-ci/packages | jq -r '.[] | select(.name=="linuxserver/swag") | .uuid')
 | 
					 | 
				
			||||||
              if [ -z "${PACKAGE_UUID}" ]; then
 | 
					              if [ -z "${PACKAGE_UUID}" ]; then
 | 
				
			||||||
                echo "Adding package to Scarf.sh"
 | 
					                echo "Adding package to Scarf.sh"
 | 
				
			||||||
                curl -sX POST https://scarf.sh/api/v1/organizations/linuxserver-ci/packages \
 | 
					                curl -sX POST https://scarf.sh/api/v1/organizations/linuxserver-ci/packages \
 | 
				
			||||||
@@ -539,9 +545,12 @@ pipeline {
 | 
				
			|||||||
            retry(5) {
 | 
					            retry(5) {
 | 
				
			||||||
              sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
 | 
					              sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            sh '''docker rmi \
 | 
					            sh '''#! /bin/bash
 | 
				
			||||||
                  ${IMAGE}:arm32v7-${META_TAG} \
 | 
					                  containers=$(docker ps -aq)
 | 
				
			||||||
                  ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
 | 
					                  if [[ -n "${containers}" ]]; then
 | 
				
			||||||
 | 
					                    docker stop ${containers}
 | 
				
			||||||
 | 
					                  fi
 | 
				
			||||||
 | 
					                  docker system prune -af --volumes || : '''
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        stage('Build ARM64') {
 | 
					        stage('Build ARM64') {
 | 
				
			||||||
@@ -574,9 +583,12 @@ pipeline {
 | 
				
			|||||||
            retry(5) {
 | 
					            retry(5) {
 | 
				
			||||||
              sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
 | 
					              sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            sh '''docker rmi \
 | 
					            sh '''#! /bin/bash
 | 
				
			||||||
                  ${IMAGE}:arm64v8-${META_TAG} \
 | 
					                  containers=$(docker ps -aq)
 | 
				
			||||||
                  ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
 | 
					                  if [[ -n "${containers}" ]]; then
 | 
				
			||||||
 | 
					                    docker stop ${containers}
 | 
				
			||||||
 | 
					                  fi
 | 
				
			||||||
 | 
					                  docker system prune -af --volumes || : '''
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
@@ -637,13 +649,6 @@ pipeline {
 | 
				
			|||||||
        environment name: 'EXIT_STATUS', value: ''
 | 
					        environment name: 'EXIT_STATUS', value: ''
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      steps {
 | 
					      steps {
 | 
				
			||||||
        sh '''#! /bin/bash
 | 
					 | 
				
			||||||
              echo "Packages were updated. Cleaning up the image and exiting."
 | 
					 | 
				
			||||||
              if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
 | 
					 | 
				
			||||||
                docker rmi ${IMAGE}:amd64-${META_TAG}
 | 
					 | 
				
			||||||
              else
 | 
					 | 
				
			||||||
                docker rmi ${IMAGE}:${META_TAG}
 | 
					 | 
				
			||||||
              fi'''
 | 
					 | 
				
			||||||
        script{
 | 
					        script{
 | 
				
			||||||
          env.EXIT_STATUS = 'ABORTED'
 | 
					          env.EXIT_STATUS = 'ABORTED'
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@@ -661,13 +666,6 @@ pipeline {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      steps {
 | 
					      steps {
 | 
				
			||||||
        sh '''#! /bin/bash
 | 
					 | 
				
			||||||
              echo "There are no package updates. Cleaning up the image and exiting."
 | 
					 | 
				
			||||||
              if [ "${MULTIARCH}" == "true" ] && [ "${PACKAGE_CHECK}" == "false" ]; then
 | 
					 | 
				
			||||||
                docker rmi ${IMAGE}:amd64-${META_TAG}
 | 
					 | 
				
			||||||
              else
 | 
					 | 
				
			||||||
                docker rmi ${IMAGE}:${META_TAG}
 | 
					 | 
				
			||||||
              fi'''
 | 
					 | 
				
			||||||
        script{
 | 
					        script{
 | 
				
			||||||
          env.EXIT_STATUS = 'ABORTED'
 | 
					          env.EXIT_STATUS = 'ABORTED'
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@@ -768,17 +766,6 @@ pipeline {
 | 
				
			|||||||
                  done
 | 
					                  done
 | 
				
			||||||
               '''
 | 
					               '''
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
          sh '''#! /bin/bash
 | 
					 | 
				
			||||||
                for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
 | 
					 | 
				
			||||||
                  docker rmi \
 | 
					 | 
				
			||||||
                  ${DELETEIMAGE}:${META_TAG} \
 | 
					 | 
				
			||||||
                  ${DELETEIMAGE}:${EXT_RELEASE_TAG} \
 | 
					 | 
				
			||||||
                  ${DELETEIMAGE}:latest || :
 | 
					 | 
				
			||||||
                  if [ -n "${SEMVER}" ]; then
 | 
					 | 
				
			||||||
                    docker rmi ${DELETEIMAGE}:${SEMVER} || :
 | 
					 | 
				
			||||||
                  fi
 | 
					 | 
				
			||||||
                done
 | 
					 | 
				
			||||||
             '''
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -872,29 +859,6 @@ pipeline {
 | 
				
			|||||||
                  done
 | 
					                  done
 | 
				
			||||||
               '''
 | 
					               '''
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
          sh '''#! /bin/bash
 | 
					 | 
				
			||||||
                for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${QUAYIMAGE}" "${IMAGE}"; do
 | 
					 | 
				
			||||||
                  docker rmi \
 | 
					 | 
				
			||||||
                  ${DELETEIMAGE}:amd64-${META_TAG} \
 | 
					 | 
				
			||||||
                  ${DELETEIMAGE}:amd64-latest \
 | 
					 | 
				
			||||||
                  ${DELETEIMAGE}:amd64-${EXT_RELEASE_TAG} \
 | 
					 | 
				
			||||||
                  ${DELETEIMAGE}:arm32v7-${META_TAG} \
 | 
					 | 
				
			||||||
                  ${DELETEIMAGE}:arm32v7-latest \
 | 
					 | 
				
			||||||
                  ${DELETEIMAGE}:arm32v7-${EXT_RELEASE_TAG} \
 | 
					 | 
				
			||||||
                  ${DELETEIMAGE}:arm64v8-${META_TAG} \
 | 
					 | 
				
			||||||
                  ${DELETEIMAGE}:arm64v8-latest \
 | 
					 | 
				
			||||||
                  ${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || :
 | 
					 | 
				
			||||||
                  if [ -n "${SEMVER}" ]; then
 | 
					 | 
				
			||||||
                    docker rmi \
 | 
					 | 
				
			||||||
                    ${DELETEIMAGE}:amd64-${SEMVER} \
 | 
					 | 
				
			||||||
                    ${DELETEIMAGE}:arm32v7-${SEMVER} \
 | 
					 | 
				
			||||||
                    ${DELETEIMAGE}:arm64v8-${SEMVER} || :
 | 
					 | 
				
			||||||
                  fi
 | 
					 | 
				
			||||||
                done
 | 
					 | 
				
			||||||
                docker rmi \
 | 
					 | 
				
			||||||
                ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
 | 
					 | 
				
			||||||
                ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :
 | 
					 | 
				
			||||||
             '''
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -965,7 +929,6 @@ pipeline {
 | 
				
			|||||||
    stage('Pull Request Comment') {
 | 
					    stage('Pull Request Comment') {
 | 
				
			||||||
      when {
 | 
					      when {
 | 
				
			||||||
        not {environment name: 'CHANGE_ID', value: ''}
 | 
					        not {environment name: 'CHANGE_ID', value: ''}
 | 
				
			||||||
        environment name: 'CI', value: 'true'
 | 
					 | 
				
			||||||
        environment name: 'EXIT_STATUS', value: ''
 | 
					        environment name: 'EXIT_STATUS', value: ''
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      steps {
 | 
					      steps {
 | 
				
			||||||
@@ -1019,6 +982,7 @@ pipeline {
 | 
				
			|||||||
              echo "$escaped_table"
 | 
					              echo "$escaped_table"
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if [[ "${CI}" = "true" ]]; then
 | 
				
			||||||
              # Retrieve JSON data from URL
 | 
					              # Retrieve JSON data from URL
 | 
				
			||||||
              data=$(get_json "$CI_JSON_URL")
 | 
					              data=$(get_json "$CI_JSON_URL")
 | 
				
			||||||
              # Create table from JSON data
 | 
					              # Create table from JSON data
 | 
				
			||||||
@@ -1028,7 +992,14 @@ pipeline {
 | 
				
			|||||||
              curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
 | 
					              curl -X POST -H "Authorization: token $GITHUB_TOKEN" \
 | 
				
			||||||
                -H "Accept: application/vnd.github.v3+json" \
 | 
					                -H "Accept: application/vnd.github.v3+json" \
 | 
				
			||||||
                "https://api.github.com/repos/$LS_USER/$LS_REPO/issues/$PULL_REQUEST/comments" \
 | 
					                "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}\\"}"'''
 | 
					                -d "{\\"body\\": \\"I am a bot, here are the test results for this PR: \\n${CI_URL}\\n${SHELLCHECK_URL}\\n${table}\\"}"
 | 
				
			||||||
 | 
					            else
 | 
				
			||||||
 | 
					              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 is the pushed image/manifest for this PR: \\n\\n\\`${GITHUBIMAGE}:${META_TAG}\\`\\"}"
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					            '''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -1055,6 +1026,14 @@ pipeline {
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    cleanup {
 | 
					    cleanup {
 | 
				
			||||||
 | 
					      sh '''#! /bin/bash
 | 
				
			||||||
 | 
					            echo "Performing docker system prune!!"
 | 
				
			||||||
 | 
					            containers=$(docker ps -aq)
 | 
				
			||||||
 | 
					            if [[ -n "${containers}" ]]; then
 | 
				
			||||||
 | 
					              docker stop ${containers}
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					            docker system prune -af --volumes || :
 | 
				
			||||||
 | 
					         '''
 | 
				
			||||||
      cleanWs()
 | 
					      cleanWs()
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user