Files
SpacetimeDB/.github/workflows/attach-artifacts.yml
Zeke Foppa 8641c17e4e Client binaries from DigitalOcean -> AWS (#5077)
# Description of Changes

Use an AWS bucket for client binaries instead of DigitalOcean.

Note that this will effectively hamstring the DigitalOcean mirror for
any old clients (i.e. ones before this change is released). But it's
only a mirror, and they can "fix" it by upgrading to a version with this
change.

# API and ABI breaking changes

None

# Expected complexity level and risk

1

# Testing

- [x] Manually ran the package job on this PR and confirmed that some of
the resulting URLs are indeed downloadable from the AWS urls

---------

Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
2026-05-20 18:57:20 +00:00

64 lines
1.9 KiB
YAML

name: Attach client binaries to release
on:
workflow_dispatch:
inputs:
release_tag:
description: "Release tag (e.g. v1.9.0)"
required: true
jobs:
upload-assets:
runs-on: spacetimedb-new-runner-2
permissions:
contents: write # needed to modify releases
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download artifacts from AWS base URL
env:
RELEASE_TAG: ${{ github.event.inputs.release_tag }}
BASE_URL: https://${{ vars.AWS_BUCKET }}.s3.amazonaws.com/refs/tags
run: |
set -euo pipefail
FULL_URL="$BASE_URL/$RELEASE_TAG"
mkdir -p artifacts
cd artifacts
download() {
local filename="$1"
if ! wget -q "${FULL_URL}/${filename}" -O "${filename}"; then
echo "Failed to download ${filename}"
exit 1
fi
}
download "spacetime-aarch64-apple-darwin.tar.gz"
download "spacetime-aarch64-unknown-linux-gnu.tar.gz"
download "spacetime-x86_64-apple-darwin.tar.gz"
download "spacetime-x86_64-pc-windows-msvc.zip"
download "spacetime-x86_64-unknown-linux-gnu.tar.gz"
download "spacetimedb-update-aarch64-apple-darwin"
download "spacetimedb-update-aarch64-unknown-linux-gnu"
download "spacetimedb-update-x86_64-apple-darwin"
download "spacetimedb-update-x86_64-pc-windows-msvc.exe"
download "spacetimedb-update-x86_64-unknown-linux-gnu"
- name: Upload artifacts to GitHub Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
RELEASE_TAG: ${{ github.event.inputs.release_tag }}
run: |
set -euo pipefail
cd artifacts
gh release upload "$RELEASE_TAG" ./* \
--repo "$GITHUB_REPOSITORY" \
--clobber