|
|
|
@ -81,7 +81,7 @@ pipeline {
|
|
|
|
|
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/commit/' + env.GIT_COMMIT
|
|
|
|
|
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/'
|
|
|
|
|
env.PULL_REQUEST = env.CHANGE_ID
|
|
|
|
|
env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE .editorconfig ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.yml ./.github/ISSUE_TEMPLATE/issue.feature.yml ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/call_issue_pr_tracker.yml ./.github/workflows/call_issues_cron.yml ./.github/workflows/permissions.yml ./.github/workflows/external_trigger.yml ./.github/workflows/package_trigger.yml'
|
|
|
|
|
env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE .editorconfig ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.yml ./.github/ISSUE_TEMPLATE/issue.feature.yml ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/call_issue_pr_tracker.yml ./.github/workflows/call_issues_cron.yml ./.github/workflows/permissions.yml ./.github/workflows/external_trigger.yml'
|
|
|
|
|
}
|
|
|
|
|
sh '''#! /bin/bash
|
|
|
|
|
echo "The default github branch detected as ${GH_DEFAULT_BRANCH}" '''
|
|
|
|
@ -311,7 +311,7 @@ pipeline {
|
|
|
|
|
echo "Jenkinsfile is up to date."
|
|
|
|
|
fi
|
|
|
|
|
echo "Starting Stage 2 - Delete old templates"
|
|
|
|
|
OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md .github/ISSUE_TEMPLATE/issue.bug.md .github/ISSUE_TEMPLATE/issue.feature.md .github/workflows/call_invalid_helper.yml .github/workflows/stale.yml"
|
|
|
|
|
OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md .github/ISSUE_TEMPLATE/issue.bug.md .github/ISSUE_TEMPLATE/issue.feature.md .github/workflows/call_invalid_helper.yml .github/workflows/stale.yml .github/workflows/package_trigger.yml"
|
|
|
|
|
for i in ${OLD_TEMPLATES}; do
|
|
|
|
|
if [[ -f "${i}" ]]; then
|
|
|
|
|
TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
|
|
|
|
@ -719,6 +719,14 @@ pipeline {
|
|
|
|
|
}
|
|
|
|
|
sh '''#! /bin/bash
|
|
|
|
|
set -e
|
|
|
|
|
if grep -q 'docker-baseimage' <<< "${LS_REPO}"; then
|
|
|
|
|
echo "Detected baseimage, setting LSIO_FIRST_PARTY=true"
|
|
|
|
|
if [ -n "${CI_DOCKERENV}" ]; then
|
|
|
|
|
CI_DOCKERENV="LSIO_FIRST_PARTY=true|${CI_DOCKERENV}"
|
|
|
|
|
else
|
|
|
|
|
CI_DOCKERENV="LSIO_FIRST_PARTY=true"
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
docker pull ghcr.io/linuxserver/ci:latest
|
|
|
|
|
if [ "${MULTIARCH}" == "true" ]; then
|
|
|
|
|
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} --platform=arm64
|
|
|
|
@ -731,6 +739,7 @@ pipeline {
|
|
|
|
|
-e DOCKER_LOGS_TIMEOUT=\"${CI_DELAY}\" \
|
|
|
|
|
-e TAGS=\"${CI_TAGS}\" \
|
|
|
|
|
-e META_TAG=\"${META_TAG}\" \
|
|
|
|
|
-e RELEASE_TAG=\"latest\" \
|
|
|
|
|
-e PORT=\"${CI_PORT}\" \
|
|
|
|
|
-e SSL=\"${CI_SSL}\" \
|
|
|
|
|
-e BASE=\"${DIST_IMAGE}\" \
|
|
|
|
@ -740,6 +749,7 @@ pipeline {
|
|
|
|
|
-e WEB_SCREENSHOT=\"${CI_WEB}\" \
|
|
|
|
|
-e WEB_AUTH=\"${CI_AUTH}\" \
|
|
|
|
|
-e WEB_PATH=\"${CI_WEBPATH}\" \
|
|
|
|
|
-e NODE_NAME=\"${NODE_NAME}\" \
|
|
|
|
|
-t ghcr.io/linuxserver/ci:latest \
|
|
|
|
|
python3 test_build.py'''
|
|
|
|
|
}
|
|
|
|
@ -1007,17 +1017,45 @@ EOF
|
|
|
|
|
git config --global --unset commit.gpgsign
|
|
|
|
|
'''
|
|
|
|
|
script{
|
|
|
|
|
env.JOB_DATE = sh(
|
|
|
|
|
script: '''date '+%Y-%m-%dT%H:%M:%S%:z' ''',
|
|
|
|
|
returnStdout: true).trim()
|
|
|
|
|
if (env.EXIT_STATUS == "ABORTED"){
|
|
|
|
|
sh 'echo "build aborted"'
|
|
|
|
|
}
|
|
|
|
|
else if (currentBuild.currentResult == "SUCCESS"){
|
|
|
|
|
sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jenkins-avatar.png","embeds": [{"color": 1681177,\
|
|
|
|
|
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** Success\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
|
|
|
|
|
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jenkins-avatar.png","embeds": [{"color": 16711680,\
|
|
|
|
|
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** failure\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
|
|
|
|
|
}else{
|
|
|
|
|
if (currentBuild.currentResult == "SUCCESS"){
|
|
|
|
|
if (env.GITHUBIMAGE =~ /lspipepr/){
|
|
|
|
|
env.JOB_WEBHOOK_STATUS='Success'
|
|
|
|
|
env.JOB_WEBHOOK_COLOUR=3957028
|
|
|
|
|
env.JOB_WEBHOOK_FOOTER='PR Build'
|
|
|
|
|
}else if (env.GITHUBIMAGE =~ /lsiodev/){
|
|
|
|
|
env.JOB_WEBHOOK_STATUS='Success'
|
|
|
|
|
env.JOB_WEBHOOK_COLOUR=3957028
|
|
|
|
|
env.JOB_WEBHOOK_FOOTER='Dev Build'
|
|
|
|
|
}else{
|
|
|
|
|
env.JOB_WEBHOOK_STATUS='Success'
|
|
|
|
|
env.JOB_WEBHOOK_COLOUR=1681177
|
|
|
|
|
env.JOB_WEBHOOK_FOOTER='Live Build'
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
if (env.GITHUBIMAGE =~ /lspipepr/){
|
|
|
|
|
env.JOB_WEBHOOK_STATUS='Failure'
|
|
|
|
|
env.JOB_WEBHOOK_COLOUR=12669523
|
|
|
|
|
env.JOB_WEBHOOK_FOOTER='PR Build'
|
|
|
|
|
}else if (env.GITHUBIMAGE =~ /lsiodev/){
|
|
|
|
|
env.JOB_WEBHOOK_STATUS='Failure'
|
|
|
|
|
env.JOB_WEBHOOK_COLOUR=12669523
|
|
|
|
|
env.JOB_WEBHOOK_FOOTER='Dev Build'
|
|
|
|
|
}else{
|
|
|
|
|
env.JOB_WEBHOOK_STATUS='Failure'
|
|
|
|
|
env.JOB_WEBHOOK_COLOUR=16711680
|
|
|
|
|
env.JOB_WEBHOOK_FOOTER='Live Build'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/jenkins-avatar.png","embeds": [{"'color'": '${JOB_WEBHOOK_COLOUR}',\
|
|
|
|
|
"footer": {"text" : "'"${JOB_WEBHOOK_FOOTER}"'"},\
|
|
|
|
|
"timestamp": "'${JOB_DATE}'",\
|
|
|
|
|
"description": "**Build:** '${BUILD_NUMBER}'\\n**CI Results:** '${CI_URL}'\\n**ShellCheck Results:** '${SHELLCHECK_URL}'\\n**Status:** '${JOB_WEBHOOK_STATUS}'\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
|
|
|
|
|
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|