Surrealist v3.2.2 #41
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Push Release | |
on: | |
release: | |
types: [published] | |
env: | |
CLOUD_CALLBACK_URL_STABLE: "https://surrealist.app/cloud/callback" | |
CLOUD_CALLBACK_URL_BETA: "https://beta.surrealist.app/cloud/callback" | |
CLOUD_CLIENT_ID: OuFa4OeeKveeRq1G6xIPgrl6EBUJtxLR | |
SCOUT_COPILOT_ID: copilot_cm3gcpzxw00020cs66takkem5 | |
SCOUT_WORKFLOW_ID: wf_cm3gbr8vk00010ds6b1g0vnvv | |
INTERCOM_APP_ID: xaac4vhr | |
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] | |
push_docker_image: | |
name: Push Docker image to Docker Hub | |
if: ${{ !github.event.release.prerelease }} | |
runs-on: ubuntu-latest | |
needs: | |
- version | |
steps: | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Log in to Docker Hub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USER }} | |
password: ${{ secrets.DOCKER_PASS }} | |
- name: Build and push | |
uses: docker/build-push-action@v6 | |
env: | |
VITE_CLOUD_CLIENT_ID: ${{ env.CLOUD_CLIENT_ID }} | |
VITE_CLOUD_CALLBACK_URL: ${{ env.CLOUD_CALLBACK_URL }} | |
VITE_SCOUT_COPILOT_ID: ${{ env.SCOUT_COPILOT_ID }} | |
VITE_SCOUT_WORKFLOW_ID: ${{ env.SCOUT_WORKFLOW_ID }} | |
with: | |
push: true | |
file: docker/Dockerfile | |
tags: | | |
surrealdb/surrealist:latest | |
surrealdb/surrealist:${{ needs.version.outputs.version }} | |
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 "CLOUD_CALLBACK_URL=${{ env.CLOUD_CALLBACK_URL_BETA }}" >> $GITHUB_ENV | |
else | |
echo "CLOUD_CALLBACK_URL=${{ env.CLOUD_CALLBACK_URL_STABLE }}" >> $GITHUB_ENV | |
fi | |
- name: Debug environment | |
run: | | |
echo "Update URL: ${{ env.UPDATE_URL }}" | |
echo "Callback URL: ${{ env.CLOUD_CALLBACK_URL }}" | |
- name: Build Website | |
run: pnpm build | |
env: | |
VITE_SURREALIST_PREVIEW: "${{ github.event.release.prerelease }}" | |
VITE_CLOUD_CLIENT_ID: ${{ env.CLOUD_CLIENT_ID }} | |
VITE_CLOUD_CALLBACK_URL: ${{ env.CLOUD_CALLBACK_URL }} | |
VITE_SCOUT_COPILOT_ID: ${{ env.SCOUT_COPILOT_ID }} | |
VITE_SCOUT_WORKFLOW_ID: ${{ env.SCOUT_WORKFLOW_ID }} | |
VITE_INTERCOM_APP_ID: ${{ env.INTERCOM_APP_ID }} | |
- 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 |