Skip to content

Surrealist v3.0.8

Surrealist v3.0.8 #26

Workflow file for this run

name: Push Release
on:
release:
types: [published]
env:
CALLBACK_URL_STABLE: "https://surrealist.app/cloud/callback"
CALLBACK_URL_BETA: "https://beta.surrealist.app/cloud/callback"
jobs:
version:
name: Extract version
runs-on: ubuntu-latest
outputs:
version: ${{ steps.extract_version.outputs.version }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup PNPM
uses: pnpm/action-setup@v3
with:
version: 9
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: 20
- name: Extract version
id: extract_version
uses: Saionaro/[email protected]
publish:
name: Publish
needs:
- version
runs-on: 'ubuntu-latest'
steps:
- name: Information
run: echo "Building Surrealist Web version ${{ needs.version.outputs.version }}"
- name: Code checkout
uses: actions/checkout@v4
- name: Setup PNPM
uses: pnpm/action-setup@v3
with:
version: 9
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: 20
cache: "pnpm"
- name: Install frontend dependencies
run: pnpm i --frozen-lockfile
- name: Generate license report
run: pnpm license-report
- name: Set version
run: pnpm pkg set version=${{ needs.version.outputs.version }}
- name: Configure variables
run: |
if [ "${{ github.event.release.prerelease }}" == "true" ]; then
echo "CALLBACK_URL=${{ env.CALLBACK_URL_BETA }}" >> $GITHUB_ENV
else
echo "CALLBACK_URL=${{ env.CALLBACK_URL_STABLE }}" >> $GITHUB_ENV
fi
- name: Debug environment
run: |
echo "Update URL: ${{ env.UPDATE_URL }}"
echo "Callback URL: ${{ env.CALLBACK_URL }}"
- name: Build Website
run: pnpm build
env:
VITE_SURREALIST_PREVIEW: "${{ github.event.release.prerelease }}"
VITE_CLOUD_CLIENT_ID: "OuFa4OeeKveeRq1G6xIPgrl6EBUJtxLR"
VITE_CLOUD_CALLBACK_URL: "${{ env.CALLBACK_URL }}"
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-region: us-west-2
aws-access-key-id: ${{ secrets.AMAZON_ACCESS_KEY }}
aws-secret-access-key: ${{ secrets.AMAZON_SECRET_KEY }}
- name: Download release assets
uses: robinraju/[email protected]
with:
releaseId: ${{ github.event.release.id }}
out-file-path: release-assets
token: ${{ secrets.GITHUB_TOKEN }}
- name: Publish to Beta
run: |
aws s3 sync --region eu-west-2 --cache-control "public, max-age=31536000, immutable" --exclude ".DS_Store" --exclude "*.wasm" ./dist/assets s3://beta.surrealist.app/assets/
aws s3 sync --region eu-west-2 --cache-control "public, max-age=31536000, immutable" --content-encoding gzip --exclude "*" --include "*.wasm" ./dist/assets s3://beta.surrealist.app/assets/
aws s3 cp --region eu-west-2 --cache-control "public, max-age=86400" ./dist/favicon.ico s3://beta.surrealist.app/
aws s3 sync --region eu-west-2 --cache-control "public, max-age=30" --exact-timestamps --delete --exclude "*" --include "*.html" ./dist/ s3://beta.surrealist.app/
aws s3 cp --region eu-west-2 --cache-control "public, max-age=0" ./release-assets/latest.json s3://beta.surrealist.app/
- name: Publish to Production
if: ${{ !github.event.release.prerelease }}
run: |
aws s3 sync --region eu-west-2 --cache-control "public, max-age=31536000, immutable" --exclude ".DS_Store" --exclude "*.wasm" ./dist/assets s3://www.surrealist.app/assets/
aws s3 sync --region eu-west-2 --cache-control "public, max-age=31536000, immutable" --content-encoding gzip --exclude "*" --include "*.wasm" ./dist/assets s3://www.surrealist.app/assets/
aws s3 cp --region eu-west-2 --cache-control "public, max-age=86400" ./dist/favicon.ico s3://www.surrealist.app/
aws s3 sync --region eu-west-2 --cache-control "public, max-age=30" --exact-timestamps --delete --exclude "*" --include "*.html" ./dist/ s3://www.surrealist.app/
aws s3 cp --region eu-west-2 --cache-control "public, max-age=0" ./release-assets/latest.json s3://www.surrealist.app/
distribute:
name: Distribute Production
if: ${{ !github.event.release.prerelease }}
needs: publish
runs-on: ubuntu-latest
strategy:
matrix:
region: [af-south-1, ap-east-1, ap-south-1, ap-southeast-1, ap-southeast-2, ca-central-1, eu-central-1, eu-west-2, me-south-1, sa-east-1, us-west-2]
steps:
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-region: us-east-2
aws-access-key-id: ${{ secrets.AMAZON_ACCESS_KEY }}
aws-secret-access-key: ${{ secrets.AMAZON_SECRET_KEY }}
- name: Distribute across regions
run: aws s3 sync --delete --exact-timestamp --source-region eu-west-2 --region ${{ matrix.region }} s3://www.surrealist.app s3://www.${{ matrix.region }}.surrealist.app