Skip to content

Commit 028c2b4

Browse files
committed
update templates with new jenkins builder
1 parent f151909 commit 028c2b4

File tree

3 files changed

+100
-18
lines changed

3 files changed

+100
-18
lines changed

.github/workflows/package_trigger_scheduler.yml

+48-16
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ jobs:
1414
fetch-depth: '0'
1515

1616
- name: Package Trigger Scheduler
17+
env:
18+
SKIP_PACKAGE_TRIGGER: ${{ vars.SKIP_PACKAGE_TRIGGER }}
1719
run: |
1820
printf "# Package trigger scheduler for docker-rawtherapee\n\n" >> $GITHUB_STEP_SUMMARY
1921
printf "Found the branches:\n\n%s\n" "$(git for-each-ref --format='- %(refname:lstrip=3)' refs/remotes)" >> $GITHUB_STEP_SUMMARY
@@ -24,27 +26,57 @@ jobs:
2426
continue
2527
fi
2628
printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY
27-
ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-rawtherapee/${br}/jenkins-vars.yml | yq -r '.ls_branch')
28-
if [ "${br}" == "${ls_branch}" ]; then
29+
JENKINS_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-rawtherapee/${br}/jenkins-vars.yml)
30+
if [[ "${br}" == $(yq -r '.ls_branch' <<< "${JENKINS_VARS}") ]]; then
2931
echo "Branch appears to be live; checking workflow." >> $GITHUB_STEP_SUMMARY
30-
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-rawtherapee/${br}/.github/workflows/package_trigger.yml > /dev/null 2>&1; then
31-
echo "Triggering package trigger workflow for branch ${br}" >> $GITHUB_STEP_SUMMARY
32+
if [[ $(yq -r '.skip_package_check' <<< "${JENKINS_VARS}") == "true" ]]; then
33+
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
34+
echo "> Skipping branch ${br} due to \`skip_package_check\` being set in \`jenkins-vars.yml\`." >> $GITHUB_STEP_SUMMARY
35+
skipped_branches="${skipped_branches}${br} "
36+
elif grep -wq "^rawtherapee_${br}$" <<< "${SKIP_PACKAGE_TRIGGER}"; then
37+
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
38+
echo "> Github organizational variable \`SKIP_PACKAGE_TRIGGER\` contains \`rawtherapee_${br}\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
39+
skipped_branches="${skipped_branches}${br} "
40+
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-rawtherapee/job/${br}/lastBuild/api/json | jq -r '.building') == "true" ]; then
41+
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
42+
echo "> There already seems to be an active build on Jenkins; skipping package trigger for ${br}" >> $GITHUB_STEP_SUMMARY
43+
skipped_branches="${skipped_branches}${br} "
44+
else
45+
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
46+
echo "> Triggering package trigger for branch ${br}" >> $GITHUB_STEP_SUMMARY
47+
printf "> To disable, add \`rawtherapee_%s\` into the Github organizational variable \`SKIP_PACKAGE_TRIGGER\`.\n\n" "${br}" >> $GITHUB_STEP_SUMMARY
3248
triggered_branches="${triggered_branches}${br} "
49+
response=$(curl -iX POST \
50+
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-rawtherapee/job/${br}/buildWithParameters?PACKAGE_CHECK=true \
51+
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
52+
echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY
53+
echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY
54+
sleep 10
55+
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
56+
buildurl="${buildurl%$'\r'}"
57+
echo "Jenkins job [build url](${buildurl})" >> $GITHUB_STEP_SUMMARY
58+
echo "Attempting to change the Jenkins job description" >> $GITHUB_STEP_SUMMARY
3359
curl -iX POST \
34-
-H "Authorization: token ${{ secrets.CR_PAT }}" \
35-
-H "Accept: application/vnd.github.v3+json" \
36-
-d "{\"ref\":\"refs/heads/${br}\"}" \
37-
https://api.github.com/repos/linuxserver/docker-rawtherapee/actions/workflows/package_trigger.yml/dispatches
38-
sleep 30
39-
else
40-
echo "Skipping branch ${br} due to no package trigger workflow present." >> $GITHUB_STEP_SUMMARY
60+
"${buildurl}submitDescription" \
61+
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \
62+
--data-urlencode "description=GHA package trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
63+
--data-urlencode "Submit=Submit"
64+
sleep 20
4165
fi
4266
else
4367
echo "Skipping branch ${br} due to being detected as dev branch." >> $GITHUB_STEP_SUMMARY
4468
fi
4569
done
46-
echo "**** Package check build(s) triggered for branch(es): ${triggered_branches} ****"
47-
echo "**** Notifying Discord ****"
48-
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
49-
"description": "**Package Check Build(s) Triggered for rawtherapee** \n**Branch(es):** '"${triggered_branches}"' \n**Build URL:** '"https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-rawtherapee/activity/"' \n"}],
50-
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
70+
if [[ -n "${triggered_branches}" ]] || [[ -n "${skipped_branches}" ]]; then
71+
if [[ -n "${triggered_branches}" ]]; then
72+
NOTIFY_BRANCHES="**Triggered:** ${triggered_branches} \n"
73+
fi
74+
if [[ -n "${skipped_branches}" ]]; then
75+
NOTIFY_BRANCHES="${NOTIFY_BRANCHES}**Skipped:** ${skipped_branches} \n"
76+
fi
77+
echo "**** Package check build(s) triggered for branch(es): ${triggered_branches} ****"
78+
echo "**** Notifying Discord ****"
79+
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
80+
"description": "**Package Check Build(s) Triggered for rawtherapee** \n'"${NOTIFY_BRANCHES}"'**Build URL:** '"https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-rawtherapee/activity/"' \n"}],
81+
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
82+
fi

Jenkinsfile

+50-1
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ pipeline {
320320
echo "Jenkinsfile is up to date."
321321
fi
322322
echo "Starting Stage 2 - Delete old templates"
323-
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"
323+
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"
324324
for i in ${OLD_TEMPLATES}; do
325325
if [[ -f "${i}" ]]; then
326326
TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
@@ -728,6 +728,14 @@ pipeline {
728728
}
729729
sh '''#! /bin/bash
730730
set -e
731+
if grep -q 'docker-baseimage' <<< "${LS_REPO}"; then
732+
echo "Detected baseimage, setting LSIO_FIRST_PARTY=true"
733+
if [ -n "${CI_DOCKERENV}" ]; then
734+
CI_DOCKERENV="LSIO_FIRST_PARTY=true|${CI_DOCKERENV}"
735+
else
736+
CI_DOCKERENV="LSIO_FIRST_PARTY=true"
737+
fi
738+
fi
731739
docker pull ghcr.io/linuxserver/ci:latest
732740
if [ "${MULTIARCH}" == "true" ]; then
733741
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} --platform=arm64
@@ -740,6 +748,7 @@ pipeline {
740748
-e DOCKER_LOGS_TIMEOUT=\"${CI_DELAY}\" \
741749
-e TAGS=\"${CI_TAGS}\" \
742750
-e META_TAG=\"${META_TAG}\" \
751+
-e RELEASE_TAG=\"latest\" \
743752
-e PORT=\"${CI_PORT}\" \
744753
-e SSL=\"${CI_SSL}\" \
745754
-e BASE=\"${DIST_IMAGE}\" \
@@ -749,6 +758,7 @@ pipeline {
749758
-e WEB_SCREENSHOT=\"${CI_WEB}\" \
750759
-e WEB_AUTH=\"${CI_AUTH}\" \
751760
-e WEB_PATH=\"${CI_WEBPATH}\" \
761+
-e NODE_NAME=\"${NODE_NAME}\" \
752762
-t ghcr.io/linuxserver/ci:latest \
753763
python3 test_build.py'''
754764
}
@@ -1016,18 +1026,57 @@ EOF
10161026
git config --global --unset commit.gpgsign
10171027
'''
10181028
script{
1029+
env.JOB_DATE = sh(
1030+
script: '''date '+%Y-%m-%dT%H:%M:%S%:z' ''',
1031+
returnStdout: true).trim()
10191032
if (env.EXIT_STATUS == "ABORTED"){
10201033
sh 'echo "build aborted"'
10211034
}
10221035
else if (currentBuild.currentResult == "SUCCESS"){
1036+
if (env.GITHUBIMAGE =~ /lspipepr/){
1037+
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": 3957028,\
1038+
"footer": {"text" : "PR Build"},\
1039+
"timestamp": "'${JOB_DATE}'",\
1040+
"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"}],\
1041+
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
1042+
}
1043+
else if (env.GITHUBIMAGE =~ /lsiodev/){
1044+
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": 3957028,\
1045+
"footer": {"text" : "Dev Build"},\
1046+
"timestamp": "'${JOB_DATE}'",\
1047+
"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"}],\
1048+
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
1049+
}
1050+
else{
10231051
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,\
1052+
"footer": {"text" : "Live Build"},\
1053+
"timestamp": "'${JOB_DATE}'",\
10241054
"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"}],\
10251055
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
1056+
}
10261057
}
10271058
else {
1059+
if (env.GITHUBIMAGE =~ /lspipepr/){
1060+
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": 12669523,\
1061+
"footer": {"text" : "PR Build"},\
1062+
"timestamp": "'${JOB_DATE}'",\
1063+
"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"}],\
1064+
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
1065+
}
1066+
else if (env.GITHUBIMAGE =~ /lsiodev/){
1067+
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": 12669523,\
1068+
"footer": {"text" : "Dev Build"},\
1069+
"timestamp": "'${JOB_DATE}'",\
1070+
"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"}],\
1071+
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
1072+
}
1073+
else{
10281074
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,\
1075+
"footer": {"text" : "Live Build"},\
1076+
"timestamp": "'${JOB_DATE}'",\
10291077
"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"}],\
10301078
"username": "Jenkins"}' ${BUILDS_DISCORD} '''
1079+
}
10311080
}
10321081
}
10331082
}

README.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,8 @@ Below are the instructions for updating containers:
303303

304304
### Image Update Notifications - Diun (Docker Image Update Notifier)
305305

306-
**tip**: We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported.
306+
>[!TIP]
307+
>We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported.
307308

308309
## Building locally
309310

0 commit comments

Comments
 (0)