This commit is contained in:
Patrick Lehmann
2025-09-25 00:26:08 +02:00
committed by GitHub
2 changed files with 28 additions and 5 deletions

View File

@@ -304,7 +304,7 @@ jobs:
if [[ -n "${downloadedArtifacts[$artifact]}" ]]; then if [[ -n "${downloadedArtifacts[$artifact]}" ]]; then
printf " %s\n" "downloading '${artifact}' ... ${ANSI_LIGHT_YELLOW}[SKIPPED]${ANSI_NOCOLOR}" printf " %s\n" "downloading '${artifact}' ... ${ANSI_LIGHT_YELLOW}[SKIPPED]${ANSI_NOCOLOR}"
else else
echo " downloading '${artifact}' ... " printf " downloading '${artifact}' ...\n"
printf " %s" "gh run download $GITHUB_RUN_ID --dir \"${artifact}\" --name \"${artifact}\" " printf " %s" "gh run download $GITHUB_RUN_ID --dir \"${artifact}\" --name \"${artifact}\" "
gh run download $GITHUB_RUN_ID --dir "${artifact}" --name "${artifact}" gh run download $GITHUB_RUN_ID --dir "${artifact}" --name "${artifact}"
if [[ $? -eq 0 ]]; then if [[ $? -eq 0 ]]; then

View File

@@ -249,7 +249,7 @@ jobs:
printf " %s\n" "MergedAt: ${PR_MERGED_AT} ($(date -d"${PR_MERGED_AT}" '+%d.%m.%Y - %H:%M:%S'))" printf " %s\n" "MergedAt: ${PR_MERGED_AT} ($(date -d"${PR_MERGED_AT}" '+%d.%m.%Y - %H:%M:%S'))"
fi fi
echo "${PR_BODY}" > __PULLREQUEST__.md printf "%s\n" "${PR_BODY}" > __PULLREQUEST__.md
fi fi
# Check if a release description file should be used and exists. # Check if a release description file should be used and exists.
@@ -353,7 +353,7 @@ jobs:
NOTES="${NOTES//%%datetime%%/$(date '+%Y-%m-%d %H:%M:%S %Z')}" NOTES="${NOTES//%%datetime%%/$(date '+%Y-%m-%d %H:%M:%S %Z')}"
# Write final release notes to file # Write final release notes to file
echo "${NOTES}" > __NOTES__.md printf "%s\n" "${NOTES}" > __NOTES__.md
# Display partial contents for debugging # Display partial contents for debugging
if [[ -s __DESCRIPTION__.md ]]; then if [[ -s __DESCRIPTION__.md ]]; then
@@ -498,6 +498,25 @@ jobs:
if [[ "${{ inputs.inventory-json }}" != "" ]]; then if [[ "${{ inputs.inventory-json }}" != "" ]]; then
VERSION="1.0" VERSION="1.0"
# Use GitHub API to ask for latest version
printf "Get latest released version via GitHub API ...\n"
printf " gh release list --json tagName,isLatest --jq '.[] | select(.isLatest == true) | .tagName' "
latestVersion=$(gh release list --json tagName,isLatest --jq '.[] | select(.isLatest == true) | .tagName')
if [[ $? -eq 0 ]]; then
if [[ -n "${latestVersion}" ]]; then
printf "${ANSI_LIGHT_RED}[UNKNOWN]${ANSI_NOCOLOR}\n"
latestVersion="unknown"
else
printf "${ANSI_LIGHT_GREEN}[OK]${ANSI_NOCOLOR}\n"
fi
else
printf "${ANSI_LIGHT_RED}[ERROR]${ANSI_NOCOLOR}\n"
printf " ${ANSI_LIGHT_RED}Couldn't get latest released version '%s'.${ANSI_NOCOLOR}\n" "${latestVersion}"
printf "::error title=%s::%s\n" "GitHub Release API" "Couldn't get latest released version '${latestVersion}'."
latestVersion="error"
fi
# Split categories by ',' into a Bash array. # Split categories by ',' into a Bash array.
# See https://stackoverflow.com/a/45201229/3719459 # See https://stackoverflow.com/a/45201229/3719459
if [[ "${{ inputs.inventory-categories }}" != "" ]]; then if [[ "${{ inputs.inventory-categories }}" != "" ]]; then
@@ -517,11 +536,15 @@ jobs:
--arg hash "${{ github.sha }}" \ --arg hash "${{ github.sha }}" \
--arg repo "${{ github.server_url }}/${{ github.repository }}" \ --arg repo "${{ github.server_url }}/${{ github.repository }}" \
--arg release "${{ github.server_url }}/${{ github.repository }}/releases/download/${{ inputs.tag }}" \ --arg release "${{ github.server_url }}/${{ github.repository }}/releases/download/${{ inputs.tag }}" \
--argjson jsonLatest "$(jq -c -n \
--arg version "${latestVersion}" \
'{"version": $version}' \
)" \
--argjson categories "$(jq -c -n \ --argjson categories "$(jq -c -n \
'$ARGS.positional' \ '$ARGS.positional' \
--args "${inventoryCategories[@]}" \ --args "${inventoryCategories[@]}" \
)" \ )" \
'{"tag": $tag, "version": $version, "git-hash": $hash, "repository-url": $repo, "release-url": $release, "categories": $categories}' \ '{"tag": $tag, "version": $version, "git-hash": $hash, "repository-url": $repo, "release-url": $release, "categories": $categories, "latest": $jsonLatest}' \
)" \ )" \
'{"version": 1.0, "timestamp": $date, "meta": $jsonMeta, "files": {}}' '{"version": 1.0, "timestamp": $date, "meta": $jsonMeta, "files": {}}'
) )
@@ -577,7 +600,7 @@ jobs:
if [[ -n "${downloadedArtifacts[$artifact]}" ]]; then if [[ -n "${downloadedArtifacts[$artifact]}" ]]; then
printf " downloading artifact '%s' ... ${ANSI_LIGHT_YELLOW}[SKIPPED]${ANSI_NOCOLOR}\n" "${artifact}" printf " downloading artifact '%s' ... ${ANSI_LIGHT_YELLOW}[SKIPPED]${ANSI_NOCOLOR}\n" "${artifact}"
else else
echo " downloading '${artifact}' ... " printf " downloading '${artifact}' ...\n"
printf " gh run download $GITHUB_RUN_ID --dir \"%s\" --name \"%s\" " "${artifact}" "${artifact}" printf " gh run download $GITHUB_RUN_ID --dir \"%s\" --name \"%s\" " "${artifact}" "${artifact}"
gh run download $GITHUB_RUN_ID --dir "${artifact}" --name "${artifact}" gh run download $GITHUB_RUN_ID --dir "${artifact}" --name "${artifact}"
if [[ $? -eq 0 ]]; then if [[ $? -eq 0 ]]; then