Loading files
This file is pinned to the selected release. Download the original to open it in your design tool.
2831e778cThis file is pinned to the selected release. Download the original to open it in your design tool.
name: CI
on:
push:
branches: ["main"]
pull_request:
types: [opened, synchronize]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false
jobs:
build:
name: Build and Test
timeout-minutes: 15
runs-on: ubuntu-latest
# env:
# TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
# TURBO_TEAM: ${{ vars.TURBO_TEAM }}
steps:
- name: Check out code
uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Cache turbo build setup
uses: actions/cache@v4
with:
path: .turbo
key: ${{ runner.os }}-turbo-${{ github.sha }}
restore-keys: |
${{ runner.os }}-turbo-
- uses: pnpm/action-setup@v3
with:
version: 9
- name: Setup Node.js environment
uses: actions/setup-node@v4
with:
node-version: 20
cache: "pnpm"
- uses: jetli/wasm-pack-action@v0.4.0
with:
# Optional version of wasm-pack to install(eg. 'v0.9.1', 'latest')
version: "latest"
- name: Install dependencies
run: pnpm install
- name: Build cadmium
run: pnpm build
- name: Install playwright dependencies
run: pnpm exec playwright install
- name: Run rust tests, vitest unit tests, and playwright e2e tests
run: pnpm turbo run test
- uses: actions/upload-artifact@v4
with:
name: cadmium
path: applications/web/dist
- name: Setup Github Pages
uses: actions/configure-pages@v5
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: applications/web/dist
# https://kit.svelte.dev/docs/adapter-static#github-pages
deploy:
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
needs: build
runs-on: ubuntu-latest
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy
id: deployment
uses: actions/deploy-pages@v4