@@ -45,17 +45,12 @@ runs:
4545 run : |
4646 set -euo pipefail
4747
48-
4948 PACKAGE_NAME="eps-devcontainers/${DEVCONTAINER_IMAGE}"
50-
5149 ENCODED_PACKAGE_NAME=$(python3 -c 'import sys, urllib.parse;
5250 print(urllib.parse.quote(sys.argv[1], safe=""))' "$PACKAGE_NAME")
53-
54-
5551 VERSIONS_JSON=$(gh api \
5652 -H "Accept: application/vnd.github+json" \
5753 "/orgs/NHSDigital/packages/container/${ENCODED_PACKAGE_NAME}/versions?per_page=100")
58-
5954 LATEST_VIA_LATEST_TAG=$(jq -r '
6055 [ .[]
6156 | select((.metadata.container.tags // []) | index("latest"))
6762 | .[0] // empty
6863 ' <<< "$VERSIONS_JSON")
6964
70-
7165 LATEST_V_TAG=$(jq -r '
7266 [ .[]
7367 | {created_at, tags: (.metadata.container.tags // [])}
@@ -78,60 +72,45 @@ runs:
7872 | .[0] // empty
7973 ' <<< "$VERSIONS_JSON")
8074
81-
8275 RESOLVED_VERSION="$LATEST_VIA_LATEST_TAG"
8376
8477 if [[ -z "$RESOLVED_VERSION" ]]; then
8578 RESOLVED_VERSION="$LATEST_V_TAG"
8679 fi
8780
88-
8981 if [[ -z "$RESOLVED_VERSION" ]]; then
9082 echo "No version tag matching ^v found for package ${PACKAGE_NAME}" >&2
9183 exit 1
9284 fi
9385
94-
9586 echo "Resolved latest version: ${RESOLVED_VERSION}"
96-
9787 echo "latest_version=${RESOLVED_VERSION}" >> "$GITHUB_OUTPUT"
9888
9989 - name : Update devcontainer version in config
10090 shell : bash
10191 run : |
10292 set -euo pipefail
10393
104-
105- TARGET_VERSION='${{ steps.resolve-version.outputs.latest_version }}'
106-
107- if [[ "$TARGET_VERSION" == "$DEVCONTAINER_VERSION" ]]; then
94+ if [[ "$LATEST_DEVCONTAINER_VERSION" == "$DEVCONTAINER_VERSION" ]]; then
10895 echo "IMAGE_VERSION is already up to date (${DEVCONTAINER_VERSION})"
10996 exit 0
11097 fi
11198
112-
11399 python3 - <<'PY'
114-
115100 import json
116-
101+ import os
117102 from pathlib import Path
118-
119-
120103 config_file = Path('.devcontainer/devcontainer.json')
121-
122104 config = json.loads(config_file.read_text())
123-
124- config['build']['args']['IMAGE_VERSION'] = '${{
125- steps.resolve-version.outputs.latest_version }}'
126-
105+ config['build']['args']['IMAGE_VERSION'] = os.environ['LATEST_DEVCONTAINER_VERSION']
127106 config_file.write_text(json.dumps(config, indent=2) + '\n')
128-
129107 PY
130108
131-
132109 echo "Updated IMAGE_VERSION from ${DEVCONTAINER_VERSION} to ${LATEST_DEVCONTAINER_VERSION}"
133110 env :
134111 LATEST_DEVCONTAINER_VERSION : " ${{ steps.resolve-version.outputs.latest_version }}"
112+ DEVCONTAINER_VERSION : " ${{ steps.load-config.outputs.DEVCONTAINER_VERSION }}"
113+
135114 - name : Create GitHub App Token
136115 uses : actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859
137116 id : generate-token
0 commit comments