Merge pull request #171 from svc-design/codex/replace-long-run-sections-with-external-script-1i2ey1

Refactor Pulumi offline installer workflow scripts
This commit is contained in:
shenlan 2025-10-02 21:01:29 +08:00 committed by GitHub
commit 68967496c6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 33 additions and 18 deletions

View File

@ -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

View File

@ -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:-}"

View File

@ -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

View File

@ -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

View File

@ -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}'"

View File

@ -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