From 9c39d53bafc3cfecf04620c01071569bcde17e8a Mon Sep 17 00:00:00 2001 From: Justin Kromlinger Date: Fri, 13 Nov 2020 11:07:13 +0100 Subject: [PATCH 1/2] Always retrieve the latest package from the API Without this stuff fails after a while since the API is paginated and sorted by ASC by default. --- ci/get-public-download-for-generic-package.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/get-public-download-for-generic-package.sh b/ci/get-public-download-for-generic-package.sh index 53922b0..27e0cd1 100755 --- a/ci/get-public-download-for-generic-package.sh +++ b/ci/get-public-download-for-generic-package.sh @@ -4,6 +4,6 @@ set -eu package_name=$1 -package_id=$(curl -sSf --header "PRIVATE-TOKEN: ${GITLAB_PROJECT_TOKEN}" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages" | jq ".[] | select(.version == \"${BUILD_VERSION}\") | .id") +package_id=$(curl -sSf --header "PRIVATE-TOKEN: ${GITLAB_PROJECT_TOKEN}" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages?sort=desc&per_page=1" | jq ".[] | select(.version == \"${BUILD_VERSION}\") | .id") package_file_id=$(curl -sSf --header "PRIVATE-TOKEN: ${GITLAB_PROJECT_TOKEN}" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/${package_id}/package_files" | jq ".[] | select(.file_name == \"$package_name\") | .id") echo "https://gitlab.archlinux.org/archlinux/archlinux-docker/-/package_files/${package_file_id}/download" From c1cc41db1abd69f540792c17c728162534838da8 Mon Sep 17 00:00:00 2001 From: Justin Kromlinger Date: Fri, 13 Nov 2020 11:09:11 +0100 Subject: [PATCH 2/2] Fail public download script on API / json parsing errors --- ci/get-public-download-for-generic-package.sh | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/ci/get-public-download-for-generic-package.sh b/ci/get-public-download-for-generic-package.sh index 27e0cd1..224b8bd 100755 --- a/ci/get-public-download-for-generic-package.sh +++ b/ci/get-public-download-for-generic-package.sh @@ -5,5 +5,17 @@ set -eu package_name=$1 package_id=$(curl -sSf --header "PRIVATE-TOKEN: ${GITLAB_PROJECT_TOKEN}" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages?sort=desc&per_page=1" | jq ".[] | select(.version == \"${BUILD_VERSION}\") | .id") + +if [[ -z "${package_id}" ]]; then + >&2 echo "Error: No package id found" + exit 1 +fi + package_file_id=$(curl -sSf --header "PRIVATE-TOKEN: ${GITLAB_PROJECT_TOKEN}" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/${package_id}/package_files" | jq ".[] | select(.file_name == \"$package_name\") | .id") + +if [[ -z "${package_file_id}" ]]; then + >&2 echo "Error: No package file id found" + exit 1 +fi + echo "https://gitlab.archlinux.org/archlinux/archlinux-docker/-/package_files/${package_file_id}/download"