diff --git a/.github/workflows/offline-package-pulumi-installer.yaml b/.github/workflows/offline-package-pulumi-installer.yaml index 7f2c06a..d264a84 100644 --- a/.github/workflows/offline-package-pulumi-installer.yaml +++ b/.github/workflows/offline-package-pulumi-installer.yaml @@ -49,6 +49,8 @@ jobs: env: ARCH: ${{ matrix.arch }} PULUMI_VERSION: ${{ steps.resolve.outputs.version }} + MATRIX_ARCH: ${{ matrix.arch }} + run: script/build-offline-pulumi-package.sh - name: Upload artifact @@ -65,6 +67,8 @@ jobs: arch: [amd64, arm64] runs-on: ubuntu-latest steps: + - uses: actions/checkout@v4 + - name: Download artifact uses: actions/download-artifact@v4 with: @@ -81,6 +85,8 @@ jobs: env: ARCH: ${{ matrix.arch }} PULUMI_VERSION: ${{ needs.build-offline-installer.outputs.version }} + MATRIX_ARCH: ${{ matrix.arch }} + run: script/verify-pulumi-bundle.sh publish-release: @@ -155,6 +161,8 @@ jobs: VPS_HOST: ${{ secrets.VPS_HOST }} REMOTE_ROOT: /data/update-server/pulumi steps: + - uses: actions/checkout@v4 + - name: Init SSH run: | set -euo pipefail diff --git a/script/build-offline-pulumi-package.sh b/script/build-offline-pulumi-package.sh index 8ef3e29..3ca0869 100755 --- a/script/build-offline-pulumi-package.sh +++ b/script/build-offline-pulumi-package.sh @@ -1,6 +1,11 @@ #!/usr/bin/env bash set -euo pipefail + +ARCH="${MATRIX_ARCH:-}" +if [[ -z "${ARCH}" ]]; then + echo "MATRIX_ARCH environment variable is required" >&2 + PULUMI_VERSION="${PULUMI_VERSION:?PULUMI_VERSION is required}" ARCH="${ARCH:-}" diff --git a/script/prune-remote-versions.sh b/script/prune-remote-versions.sh index ac08a4d..0dd2e62 100755 --- a/script/prune-remote-versions.sh +++ b/script/prune-remote-versions.sh @@ -1,16 +1,18 @@ #!/usr/bin/env bash set -euo pipefail -REMOTE_ROOT="${REMOTE_ROOT:?REMOTE_ROOT is required}" -RSYNC_SSH_USER="${RSYNC_SSH_USER:?RSYNC_SSH_USER is required}" -VPS_HOST="${VPS_HOST:?VPS_HOST is required}" +if [[ -z "${REMOTE_ROOT:-}" || -z "${RSYNC_SSH_USER:-}" || -z "${VPS_HOST:-}" ]]; then + echo "Missing required environment variables" >&2 + exit 1 +fi ssh -i ~/.ssh/id_rsa "${RSYNC_SSH_USER}@${VPS_HOST}" bash -lc ' set -euo pipefail - cd "'"${REMOTE_ROOT}"'" || exit 0 + cd "'"'${REMOTE_ROOT}'"'" || exit 0 keep=3 mapfile -t all < <(ls -1 | grep -E "^(offline-pulumi-|v[0-9]+\.)" | sort -V -r || true) - if [ "${#all[@]}" -le "$keep" ]; then + if [[ "${#all[@]}" -le "${keep}" ]]; then + echo "Nothing to prune. Count=${#all[@]}" exit 0 fi diff --git a/script/resolve-pulumi-version.sh b/script/resolve-pulumi-version.sh index 4fdb5cc..8b7676d 100755 --- a/script/resolve-pulumi-version.sh +++ b/script/resolve-pulumi-version.sh @@ -1,9 +1,7 @@ #!/usr/bin/env bash set -euo pipefail -OVERRIDE_VERSION="${OVERRIDE_VERSION:-}" - -if [ -n "${OVERRIDE_VERSION}" ]; then +if [[ -n "${OVERRIDE_VERSION:-}" ]]; then VERSION="${OVERRIDE_VERSION}" else VERSION=$(curl -fsSL https://api.github.com/repos/pulumi/pulumi/releases?per_page=100 \ @@ -14,7 +12,7 @@ else | tail -n 1) fi -if [ -z "${VERSION}" ]; then +if [[ -z "${VERSION}" ]]; then echo "Failed to resolve Pulumi version" >&2 exit 1 fi diff --git a/script/rsync-release-assets.sh b/script/rsync-release-assets.sh index 87d561f..1e7912c 100755 --- a/script/rsync-release-assets.sh +++ b/script/rsync-release-assets.sh @@ -1,10 +1,12 @@ #!/usr/bin/env bash set -euo pipefail -REMOTE_ROOT="${REMOTE_ROOT:?REMOTE_ROOT is required}" -TAG_NAME="${TAG_NAME:?TAG_NAME is required}" -RSYNC_SSH_USER="${RSYNC_SSH_USER:?RSYNC_SSH_USER is required}" -VPS_HOST="${VPS_HOST:?VPS_HOST is required}" + +if [[ -z "${REMOTE_ROOT:-}" || -z "${TAG_NAME:-}" || -z "${RSYNC_SSH_USER:-}" || -z "${VPS_HOST:-}" ]]; then + echo "Missing required environment variables" >&2 + exit 1 +fi + REMOTE_DIR="${REMOTE_ROOT}/${TAG_NAME}" ssh -i ~/.ssh/id_rsa "${RSYNC_SSH_USER}@${VPS_HOST}" "mkdir -p '${REMOTE_DIR}'" diff --git a/script/verify-pulumi-bundle.sh b/script/verify-pulumi-bundle.sh index 1d76285..bf70241 100755 --- a/script/verify-pulumi-bundle.sh +++ b/script/verify-pulumi-bundle.sh @@ -1,11 +1,10 @@ #!/usr/bin/env bash set -euo pipefail -ARCH="${ARCH:-}" -PULUMI_VERSION="${PULUMI_VERSION:-}" -if [ -z "${ARCH}" ]; then - echo "ARCH environment variable is required" >&2 +ARCH="${MATRIX_ARCH:-}" +if [[ -z "${ARCH}" ]]; then + echo "MATRIX_ARCH environment variable is required" >&2 exit 1 fi @@ -13,7 +12,8 @@ cd test-dir/pulumi-offline-package test -f VERSION -if [ "${ARCH}" = "amd64" ]; then + +if [[ "${ARCH}" == "amd64" ]]; then ./bin/pulumi version ./bin/pulumi version | grep "v${PULUMI_VERSION}" else