Skip to content

Game

Game #385

Workflow file for this run

name: Continuous integration
concurrency:
cancel-in-progress: true
group: pull-request-${{ github.event.pull_request.number }}
jobs:
# Stage 1: bun, dependency-review, devskim
# bun:
# name: bun
# runs-on: ubuntu-latest
# steps:
# - name: Checkout repo
# uses: actions/checkout@v4
# - name: Install bun
# uses: oven-sh/setup-bun@v1
# - name: Install dependencies
# run: bun install
# - name: Build
# run: bun run build
# - name: Test
# run: bun run test
dependency-review:
name: Dependency review
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Review
uses: actions/dependency-review-action@v2
devskim:
name: DevSkim
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Scan
uses: microsoft/devskim-action@v1
with:
options-json: config/devskim.json
- name: Upload
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: devskim-results.sarif
wait-for-processing: true
# Stage 2: build
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup
uses: ./.github/actions/setup
- name: Build
run: npm run-script build
env:
CLARITY_TAG: ln18ya61ca
CLOUD_ACCOUNT_ID: quisido
CLOUD_PLATFORM: GitHub
CLOUD_PROVIDER: GitHub Pages
CSP_ORIGIN: https://localhost:6586
DASHBOARD_ENDPOINT: https://localhost:9778/
DD_API_KEY: ${{ secrets.DATADOG_API_KEY }}
DD_APPLICATION_ID: 3e55f7ef-a00a-41ab-9857-baf7ad00daa1
DD_CLIENT_TOKEN: pubee0abcc4e08cef309eda284ba1d44e32
DD_ENV: staging
DD_PROFILING_ENABLED: true
DD_SERVICE: quisi.do-(staging)
DD_VERSION: ${{ github.sha }}
DEPLOYMENT_ENVIRONMENT: integration
GITHUB_REPOSITORY: ${{ github.repository }}
GITHUB_SHA: ${{ github.sha }}
GOOGLE_ANALYTICS_TRACKING_ID: G-GMKFW5ZZ9G
HONEYCOMB_API_KEY: hcaik_01hwsd84kyjjrwjgg4kqbzzvp2
PATREON_OAUTH_CLIENT_ID: 4kCae2AHZdKyyuonaPzhGillxJ2HyyLQEDu8StvMtixBHmWmN4KVG0QVP6R45tjG
PATREON_OAUTH_REDIRECT_URI: https://localhost:5882/patreon/
SENTRY_ENVIRONMENT: staging
WHOAMI: https://localhost:5882/whoami/
- name: Upload
uses: actions/upload-artifact@v4
with:
name: build
path: packages/*/dist/
lighthouse:
name: Lighthouse
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
- name: Download build
uses: actions/download-artifact@v4
with:
name: build
path: packages/
- name: Setup
uses: ./.github/actions/setup
- name: Audit
run: npm run-script lighthouse:report --workspace=packages/vite
- name: Validate
run: npm run-script postlighthouse --workspace=packages/vite
- name: Upload
if: always()
uses: actions/upload-artifact@v4
with:
name: lighthouse
path: |
packages/*/lighthouse.report.*
packages/*/lighthouse-*.devtoolslog.json
packages/*/lighthouse-*.trace.json
test:
name: Test
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download build
uses: actions/download-artifact@v4
with:
name: build
path: packages/
- name: Setup
uses: ./.github/actions/setup
- name: Test
run: npm run-script test --include-workspace-root --workspaces
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_EDIT_WORKERS_API_TOKEN }}
DD_API_KEY: ${{ secrets.DATADOG_API_KEY }}
DD_CIVISIBILITY_AGENTLESS_ENABLED: true
DD_ENV: ci
DD_SERVICE: quisi.do
- name: Upload
if: always()
uses: actions/upload-artifact@v4
with:
name: test
path: packages/*/.vitest/
# This requires some more setup to work. Configure the test step to upload report artifacts.
# Then add this to the CD file.
sentry-prevent:
name: Sentry Prevent
needs: test
runs-on: ubuntu-latest
permissions:
id-token: write
steps:
- name: Download
uses: actions/download-artifact@v4
with:
name: test
path: packages/*/
- name: Upload
if: ${{ !cancelled() }}
uses: getsentry/prevent-action@v0
# Stage 4: coverage
# coverage:
# name: Coverage
# needs: [test] # cypress
# runs-on: ubuntu-latest
# steps:
# - name: Checkout
# uses: actions/checkout@v4
# - name: Download Cypress artifacts
# uses: actions/download-artifact@v4
# with:
# name: cypress
# path: packages/
# - name: Download test artifacts
# uses: actions/download-artifact@v4
# with:
# name: test
# path: /
# - name: Setup
# uses: ./.github/actions/setup
# - name: Report coverage
# run: npm run-script coverage --workspace=packages/vite
# env:
# BRANCHES_COVERAGE_THRESHOLD: 1
# FUNCTIONS_COVERAGE_THRESHOLD: 1
# LINES_COVERAGE_THRESHOLD: 1
# STATEMENTS_COVERAGE_THRESHOLD: 1
# - name: Upload coverage
# if: always()
# uses: actions/upload-artifact@v4
# with:
# name: coverage
# path: |
# packages/*/.nyc_output/
# packages/*/coverage/
on:
pull_request: