From 74aca739066f0ba6f89d6b812f075f8dd2be7371 Mon Sep 17 00:00:00 2001 From: tomzu Date: Fri, 24 Jan 2025 11:11:36 -0500 Subject: [PATCH 1/2] feat: check marketplace in release --- buildspec/release/70checkmarketplace.yml | 48 ++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 buildspec/release/70checkmarketplace.yml diff --git a/buildspec/release/70checkmarketplace.yml b/buildspec/release/70checkmarketplace.yml new file mode 100644 index 00000000000..4b8e972a9f3 --- /dev/null +++ b/buildspec/release/70checkmarketplace.yml @@ -0,0 +1,48 @@ +version: 0.2 + +phases: + install: + runtime-versions: + nodejs: 16 + + commands: + - apt update + - apt install -y wget gpg + - wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg + - install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/ + - sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list' + - apt update + - apt install -y code + + pre_build: + commands: + # Check for implicit env vars passed from the release pipeline.x + - test -n "${TARGET_EXTENSION}" + + build: + commands: + - VERSION=$(node -e "console.log(require('./packages/${TARGET_EXTENSION}/package.json').version);") + # get extension name + - | + if [ "${TARGET_EXTENSION}" = "amazonq" ]; then + extension_name="amazonwebservices.amazon-q-vscode" + elif [ "${TARGET_EXTENSION}" = "toolkit" ]; then + extension_name="amazonwebservices.aws-toolkit-vscode" + else + echo "Unknown TARGET_EXTENSION: ${TARGET_EXTENSION}" + exit 1 + fi + # keep reinstalling the extension until the desired version is updated. Otherwise fail on codebuild timeout (1 hour). + - | + while true; do + code --uninstall-extension ${extension_name} --no-sandbox --user-data-dir /tmp/vscode + code --install-extension ${extension_name} --no-sandbox --user-data-dir /tmp/vscode + cur_version=$(code --list-extensions --show-versions --no-sandbox --user-data-dir /tmp/vscode | grep ${extension_name} | cut -d'@' -f2) + if [ "${cur_version}" = "${VERSION}" ]; then + echo "Extension ${extension_name} is updated to version ${cur_version}." + break + else + echo "Current version ${cur_version} does not match expected version ${VERSION}. Retrying..." + fi + sleep 120 # Wait for 2 minutes before retrying + done From 0a02670a7ebb8e7267f2611b89a88d6e1751dc02 Mon Sep 17 00:00:00 2001 From: tomzu Date: Mon, 27 Jan 2025 14:17:59 -0500 Subject: [PATCH 2/2] use curl and modified echo logs --- buildspec/release/70checkmarketplace.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/buildspec/release/70checkmarketplace.yml b/buildspec/release/70checkmarketplace.yml index 4b8e972a9f3..c4c2314b98f 100644 --- a/buildspec/release/70checkmarketplace.yml +++ b/buildspec/release/70checkmarketplace.yml @@ -8,7 +8,7 @@ phases: commands: - apt update - apt install -y wget gpg - - wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg + - curl -sSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg - install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/ - sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list' - apt update @@ -16,7 +16,7 @@ phases: pre_build: commands: - # Check for implicit env vars passed from the release pipeline.x + # Check for implicit env vars passed from the release pipeline. - test -n "${TARGET_EXTENSION}" build: @@ -29,20 +29,20 @@ phases: elif [ "${TARGET_EXTENSION}" = "toolkit" ]; then extension_name="amazonwebservices.aws-toolkit-vscode" else - echo "Unknown TARGET_EXTENSION: ${TARGET_EXTENSION}" + echo checkmarketplace: "Unknown TARGET_EXTENSION: ${TARGET_EXTENSION}" exit 1 fi # keep reinstalling the extension until the desired version is updated. Otherwise fail on codebuild timeout (1 hour). - | while true; do - code --uninstall-extension ${extension_name} --no-sandbox --user-data-dir /tmp/vscode + code --uninstall-extension "${extension_name}" --no-sandbox --user-data-dir /tmp/vscode code --install-extension ${extension_name} --no-sandbox --user-data-dir /tmp/vscode cur_version=$(code --list-extensions --show-versions --no-sandbox --user-data-dir /tmp/vscode | grep ${extension_name} | cut -d'@' -f2) if [ "${cur_version}" = "${VERSION}" ]; then - echo "Extension ${extension_name} is updated to version ${cur_version}." + echo "checkmarketplace: Extension ${extension_name} is updated to version '${cur_version}.'" break else - echo "Current version ${cur_version} does not match expected version ${VERSION}. Retrying..." + echo "checkmarketplace: Current version '${cur_version}' does not match expected version '${VERSION}'. Retrying..." fi sleep 120 # Wait for 2 minutes before retrying done