Skip to content

Commit

Permalink
Feature: Add full PS version tagging for powershell 7.3 and later (
Browse files Browse the repository at this point in the history
  • Loading branch information
joeltimothyoh authored Mar 4, 2024
1 parent a4c7328 commit 02234ea
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,12 @@ jobs:
export BASE_TAG_FULL_REGEX=$( echo "$BASE_TAG_FULL" | rev | sed -rn 's/^-*(.+)/\1/p' | rev )
echo "BASE_TAG_FULL_REGEX: $BASE_TAG_FULL_REGEX"
time docker pull "${BUILD_REGISTRY_NAMESPACE}/${BUILD_IMAGE_NAME}:${BASE_TAG_FULL_REGEX}" || true
export PS_VERSION_TRUNC=$( echo "$PS_VERSION" | sed -rn 's/([0-9]\.[0-9]).*/\1/p' )
# Get full PS version for PS 7.3 and later
if [ 1 -eq "$( echo "$PS_VERSION_TRUNC >= 7.3" | bc )" ]; then
export PS_VERSION_FULL=$( docker run -t --rm --entrypoint /bin/sh "${BASE_REGISTRY_NAMESPACE}/${BASE_IMAGE_NAME}:${BASE_TAG_FULL_REGEX}" -c "pwsh --version | sed -rn 's/PowerShell ([0-9]\.[0-9]\.[0-9])/\1/p'" | tr -d '\r' )
echo "PS_VERSION_FULL: $PS_VERSION_FULL"
fi
time docker build \
--cache-from "${BUILD_REGISTRY_NAMESPACE}/${BUILD_IMAGE_NAME}:${BASE_TAG_FULL_REGEX}" \
-t "${BUILD_REGISTRY_NAMESPACE}/${BUILD_IMAGE_NAME}:${BASE_TAG_FULL_REGEX}" \
Expand All @@ -225,6 +231,9 @@ jobs:
if [ "${TAG_LATEST}" = 'true' ]; then
docker tag "${BUILD_REGISTRY_NAMESPACE}/${BUILD_IMAGE_NAME}:${BASE_TAG_FULL_REGEX}" "${BUILD_REGISTRY_NAMESPACE}/${BUILD_IMAGE_NAME}:latest"
fi
if [ 1 -eq "$( echo "$PS_VERSION_TRUNC >= 7.3" | bc )" ]; then
docker tag "${BUILD_REGISTRY_NAMESPACE}/${BUILD_IMAGE_NAME}:${BASE_TAG_FULL_REGEX}" "${BUILD_REGISTRY_NAMESPACE}/${BUILD_IMAGE_NAME}:${PS_VERSION_FULL}-${OS}-${OS_VARIANT}-${TOOL_VARIANT}"
fi
docker images
docker inspect "${BUILD_REGISTRY_NAMESPACE}/${BUILD_IMAGE_NAME}:${BASE_TAG_FULL_REGEX}"
# Set job variables for later steps
Expand Down Expand Up @@ -368,6 +377,12 @@ jobs:
export BASE_TAG_FULL_REGEX=$( echo "$BASE_TAG_FULL" | rev | sed -rn 's/^-*(.+)/\1/p' | rev )
echo "BASE_TAG_FULL_REGEX: $BASE_TAG_FULL_REGEX"
time docker pull "${BUILD_REGISTRY_NAMESPACE}/${BUILD_IMAGE_NAME}:${BASE_TAG_FULL_REGEX}" || true
export PS_VERSION_TRUNC=$( echo "$PS_VERSION" | sed -rn 's/([0-9]\.[0-9]).*/\1/p' )
# Get full PS version for PS 7.3 and later
if [ 1 -eq "$( echo "$PS_VERSION_TRUNC >= 7.3" | bc )" ]; then
export PS_VERSION_FULL=$( docker run -t --rm --entrypoint /bin/sh "${BASE_REGISTRY_NAMESPACE}/${BASE_IMAGE_NAME}:${BASE_TAG_FULL_REGEX}" -c "pwsh --version | sed -rn 's/PowerShell ([0-9]\.[0-9]\.[0-9])/\1/p'" | tr -d '\r' )
echo "PS_VERSION_FULL: $PS_VERSION_FULL"
fi
time docker build \
--cache-from "${BUILD_REGISTRY_NAMESPACE}/${BUILD_IMAGE_NAME}:${BASE_TAG_FULL_REGEX}" \
-t "${BUILD_REGISTRY_NAMESPACE}/${BUILD_IMAGE_NAME}:${BASE_TAG_FULL_REGEX}" \
Expand All @@ -377,6 +392,9 @@ jobs:
if [ "${TAG_LATEST}" = 'true' ]; then
docker tag "${BUILD_REGISTRY_NAMESPACE}/${BUILD_IMAGE_NAME}:${BASE_TAG_FULL_REGEX}" "${BUILD_REGISTRY_NAMESPACE}/${BUILD_IMAGE_NAME}:latest"
fi
if [ 1 -eq "$( echo "$PS_VERSION_TRUNC >= 7.3" | bc )" ]; then
docker tag "${BUILD_REGISTRY_NAMESPACE}/${BUILD_IMAGE_NAME}:${BASE_TAG_FULL_REGEX}" "${BUILD_REGISTRY_NAMESPACE}/${BUILD_IMAGE_NAME}:${PS_VERSION_FULL}-${OS}-${OS_VARIANT}-${TOOL_VARIANT}"
fi
docker images
docker inspect "${BUILD_REGISTRY_NAMESPACE}/${BUILD_IMAGE_NAME}:${BASE_TAG_FULL_REGEX}"
# Set job variables for later steps
Expand Down

0 comments on commit 02234ea

Please sign in to comment.