scripts/make-dockerfile.sh: reuse in the release stage

Bonus point, we actually error out when the git command fails.

v2:
 - fix curl quoting
 - sed match-complete-line-and-remove
 - inline update make-dockerfile.sh variables

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
This commit is contained in:
Emil Velikov 2023-10-02 12:46:17 +01:00
parent 0a6910cade
commit d1254eeee4
2 changed files with 12 additions and 12 deletions

View File

@ -243,15 +243,9 @@ release:
curl -sSf --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file output/${group}.tar.zst ${PACKAGE_REGISTRY_URL}/${group}-${BUILD_VERSION}.tar.zst
echo "Uploading ${group}.tar.zst.SHA256"
curl -sSf --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file output/${group}.tar.zst.SHA256 ${PACKAGE_REGISTRY_URL}/${group}-${BUILD_VERSION}.tar.zst.SHA256
sed "/COPY TEMPLATE_ROOTFS_FILE/d" Dockerfile.template > output/Dockerfile.${group}
sed -i "s|TEMPLATE_ROOTFS_FILE|${group}.tar.zst|" output/Dockerfile.${group}
package_url=$(./ci/get-public-download-for-generic-package.sh ${group}-${BUILD_VERSION}.tar.zst)
sed -i "s|TEMPLATE_ROOTFS_DOWNLOAD|curl -sOJL \"${package_url}\"|" output/Dockerfile.${group}
sed -i "s|TEMPLATE_ROOTFS_HASH|$(cat output/${group}.tar.zst.SHA256)|" output/Dockerfile.${group}
sed -i "s|TEMPLATE_TITLE|Arch Linux ${group} Image|" output/Dockerfile.${group}
sed -i "s|TEMPLATE_VERSION_ID|${BUILD_VERSION}|" output/Dockerfile.${group}
sed -i "s|TEMPLATE_REVISION|${CI_COMMIT_SHA}|" output/Dockerfile.${group}
sed -i "s|TEMPLATE_CREATED|$(date -Is)|" output/Dockerfile.${group}
scripts/make-dockerfile.sh "${group}" "output" "curl -sOJL \"${package_url}\"" "${group}"
sed -i "/^COPY ${group}.tar.zst \/$/d" output/Dockerfile.${group}
done
- >
curl -sSf --request POST -o commit-response.json

View File

@ -4,12 +4,18 @@ set -euo pipefail
declare -r GROUP="$1"
declare -r OUTPUTDIR="$2"
declare -r DOWNLOAD="$3"
declare -r TITLE="$4"
# Do not use these directly in the sed below - it will mask git failures
BUILD_VERSION="${BUILD_VERSION:-dev}"
CI_COMMIT_SHA="${CI_COMMIT_SHA:-$(git rev-parse HEAD)}"
sed -e "s|TEMPLATE_ROOTFS_FILE|$GROUP.tar.zst|" \
-e "s|TEMPLATE_ROOTFS_DOWNLOAD|true|" \
-e "s|TEMPLATE_ROOTFS_DOWNLOAD|$DOWNLOAD|" \
-e "s|TEMPLATE_ROOTFS_HASH|$(cat $OUTPUTDIR/$GROUP.tar.zst.SHA256)|" \
-e "s|TEMPLATE_TITLE|Arch Linux Dev Image|" \
-e "s|TEMPLATE_VERSION_ID|dev|" \
-e "s|TEMPLATE_REVISION|$(git rev-parse HEAD)|" \
-e "s|TEMPLATE_TITLE|Arch Linux $TITLE Image|" \
-e "s|TEMPLATE_VERSION_ID|$BUILD_VERSION|" \
-e "s|TEMPLATE_REVISION|$CI_COMMIT_SHA|" \
-e "s|TEMPLATE_CREATED|$(date -Is)|" \
Dockerfile.template > "$OUTPUTDIR/Dockerfile.$GROUP"