Skip to content

Commit 3b45384

Browse files
committed
package trigger: check for deprecated branches, handle errors better
1 parent 1b95d0a commit 3b45384

File tree

1 file changed

+21
-5
lines changed

1 file changed

+21
-5
lines changed

roles/generate-jenkins/templates/PACKAGE_TRIGGER_SCHEDULER.j2

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,25 @@ jobs:
2727
fi
2828
printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY
2929
JENKINS_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/{{ project_repo_name }}/${br}/jenkins-vars.yml)
30-
if [[ "${br}" == $(yq -r '.ls_branch' <<< "${JENKINS_VARS}") ]]; then
30+
if ! curl -sfX GET https://raw.githubusercontent.com/linuxserver/{{ project_repo_name }}/${br}/Jenkinsfile >/dev/null 2>&1; then
31+
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
32+
echo "> No Jenkinsfile found. Branch is either deprecated or is an early dev branch." >> $GITHUB_STEP_SUMMARY
33+
skipped_branches="${skipped_branches}${br} "
34+
elif [[ "${br}" == $(yq -r '.ls_branch' <<< "${JENKINS_VARS}") ]]; then
3135
echo "Branch appears to be live; checking workflow." >> $GITHUB_STEP_SUMMARY
32-
if [[ $(yq -r '.skip_package_check' <<< "${JENKINS_VARS}") == "true" ]]; then
36+
if [[ $(yq -r '.project_deprecation_status' <<< "${JENKINS_VARS}") == "true" ]]; then
37+
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
38+
echo "> Branch appears to be deprecated; skipping trigger." >> $GITHUB_STEP_SUMMARY
39+
skipped_branches="${skipped_branches}${br} "
40+
elif [[ $(yq -r '.skip_package_check' <<< "${JENKINS_VARS}") == "true" ]]; then
3341
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
3442
echo "> Skipping branch ${br} due to \`skip_package_check\` being set in \`jenkins-vars.yml\`." >> $GITHUB_STEP_SUMMARY
3543
skipped_branches="${skipped_branches}${br} "
3644
elif grep -q "^{{ project_name }}_${br}" <<< "${SKIP_PACKAGE_TRIGGER}"; then
3745
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
3846
echo "> Github organizational variable \`SKIP_PACKAGE_TRIGGER\` contains \`{{ project_name }}_${br}\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
3947
skipped_branches="${skipped_branches}${br} "
40-
elif [ $(curl -s {{ lsio_ci_url }}/job/Docker-Pipeline-Builders/job/{{ project_repo_name }}/job/${br}/lastBuild/api/json | jq -r '.building') == "true" ]; then
48+
elif [ $(curl -s {{ lsio_ci_url }}/job/Docker-Pipeline-Builders/job/{{ project_repo_name }}/job/${br}/lastBuild/api/json | jq -r '.building' 2>/dev/null) == "true" ]; then
4149
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
4250
echo "> There already seems to be an active build on Jenkins; skipping package trigger for ${br}" >> $GITHUB_STEP_SUMMARY
4351
skipped_branches="${skipped_branches}${br} "
@@ -49,18 +57,26 @@ jobs:
4957
response=$(curl -iX POST \
5058
{{ lsio_ci_url }}/job/Docker-Pipeline-Builders/job/{{ project_repo_name }}/job/${br}/buildWithParameters?PACKAGE_CHECK=true \
5159
--user ${{ '{{' }} secrets.JENKINS_USER {{ '}}' }}:${{ '{{' }} secrets.JENKINS_TOKEN {{ '}}' }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
60+
if [[ -z "${response}" ]]; then
61+
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
62+
echo "> Jenkins build could not be triggered. Skipping branch."
63+
continue
64+
fi
5265
echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY
5366
echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY
5467
sleep 10
5568
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
5669
buildurl="${buildurl%$'\r'}"
5770
echo "Jenkins job [build url](${buildurl})" >> $GITHUB_STEP_SUMMARY
5871
echo "Attempting to change the Jenkins job description" >> $GITHUB_STEP_SUMMARY
59-
curl -iX POST \
72+
if ! curl -ifX POST \
6073
"${buildurl}submitDescription" \
6174
--user ${{ '{{' }} secrets.JENKINS_USER {{ '}}' }}:${{ '{{' }} secrets.JENKINS_TOKEN {{ '}}' }} \
6275
--data-urlencode "description=GHA package trigger https://github.com/${{ '{{' }} github.repository {{ '}}' }}/actions/runs/${{ '{{' }} github.run_id {{ '}}' }}" \
63-
--data-urlencode "Submit=Submit"
76+
--data-urlencode "Submit=Submit"; then
77+
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
78+
echo "> Unable to change the Jenkins job description."
79+
fi
6480
sleep 20
6581
fi
6682
else

0 commit comments

Comments
 (0)