Skip to content

Try out SSG

Try out SSG #31

Workflow file for this run

name: Deploy to Staging
permissions:
contents: write
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
on:
push:
branches:
- develop
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
env:
SUPABASE_ACCESS_TOKEN: ${{ secrets.SUPABASE_ACCESS_TOKEN }}
SUPABASE_DB_PASSWORD: ${{ secrets.STAGING_DB_PASSWORD }}
SUPABASE_PROJECT_ID: ${{ secrets.STAGING_PROJECT_ID }}
SUPABASE_API_URL: "https://${{ secrets.STAGING_PROJECT_ID }}.supabase.co"
SUPABASE_ANON_KEY: ${{ secrets.STAGING_ANON_KEY }}
ENV: staging
APP_URL: https://staging.talkbirdyto.me
RUST_LOG: debug
steps:
- uses: actions/checkout@v4
- name: Install npm
uses: actions/setup-node@v4
# Install Rust with the `rust-toolchain` action.
- name: Install Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
targets: wasm32-unknown-unknown
# Use another action to cache our files when possible.
- uses: Swatinem/rust-cache@v2
with:
cache-all-crates: "true"
save-if: ${{ github.ref == 'refs/heads/develop' }}
# Install a tool that makes it quicker to install other tools.
- uses: cargo-bins/cargo-binstall@main
# Compile CSS
- name: Compile css
working-directory: app
run: npm ci ; npx tailwindcss --minify --input ./input.css --output ./assets/tailwind.css
# dotenvy requires this
- run: cp .env.example .env
# Install the Dioxus CLI
- name: Install Dioxus
# run: cargo binstall [email protected] -y --force
run: cargo install --git https://github.com/DioxusLabs/dioxus.git --rev 87c2f64f134756578f6cf9e12fd085b9bb03c5c7 dioxus-cli --locked
# Build our Dioxus app in release.
- name: Build app
working-directory: app
run: dx build --profile release --platform static-generation --features static-generation
# Fixup index.html (see https://github.com/DioxusLabs/dioxus/issues/2847)
- name: Fixup build output
run: |
./dist/birdtalk
cp -r ./static/* ./dist/public
cd dist/public
sed -i 's/<html>/<html lang="en">/' index.html
sed -i 's/<html>/<html lang="en">/' birds/index.html
sed -i 's/<html>/<html lang="en">/' play/index.html
# Create our required `404.html` page.
- name: Create 404.html
run: cp dist/public/index.html dist/public/404.html
- uses: supabase/setup-cli@v1
with:
version: latest
- run: supabase link --project-ref $SUPABASE_PROJECT_ID
- name: "Deploy migrations to staging"
run: supabase db push
# Now we call for another GitHub action to run. This action copies our
# built site and pushes it to our `gh-pages` branch.
- name: Deploy app to Render
uses: JamesIves/[email protected]
with:
branch: static-develop # The branch we have GitHub pages setup in.
folder: dist/public # The folder we want to copy to the `gh-pages` branch.
target-folder: . # The destination we want our files copied to. In this case, we want them to be a the root level.
clean: true