Skip to content

ci: keep the Task 3 workspaces awake, and notice when they are not #58

ci: keep the Task 3 workspaces awake, and notice when they are not

ci: keep the Task 3 workspaces awake, and notice when they are not #58

Workflow file for this run

name: Deploy GitHub Pages
on:
push:
branches:
- main
workflow_dispatch:
permissions: {}
concurrency:
group: pages
cancel-in-progress: false
jobs:
build:
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Check out repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
ref: main
persist-credentials: false
- name: Set up Node.js 22.13.0
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7
with:
node-version: 22.13.0
cache: npm
- name: Install dependencies
run: npm ci
- name: Type-check and build static site
env:
FINREASON_TASK1_SITE_MODE: ${{ vars.FINREASON_TASK1_SITE_MODE || 'development' }}
NEXT_PUBLIC_FINREASON_TASK1_DEVELOPMENT_SPACE_URL: ${{ vars.NEXT_PUBLIC_FINREASON_TASK1_DEVELOPMENT_SPACE_URL }}
NEXT_PUBLIC_FINREASON_TASK1_TEST_SPACE_URL: ${{ vars.NEXT_PUBLIC_FINREASON_TASK1_TEST_SPACE_URL }}
NEXT_PUBLIC_FINREASON_TASK1_LEADERBOARD_API_URL: ${{ vars.NEXT_PUBLIC_FINREASON_TASK1_LEADERBOARD_API_URL }}
FINREASON_TASK3_SITE_MODE: ${{ vars.FINREASON_TASK3_SITE_MODE || 'development' }}
NEXT_PUBLIC_FINREASON_TASK3_SCORING_SPACE_URL: ${{ vars.NEXT_PUBLIC_FINREASON_TASK3_SCORING_SPACE_URL }}
NEXT_PUBLIC_FINREASON_TASK3_TEST_SPACE_URL: ${{ vars.NEXT_PUBLIC_FINREASON_TASK3_TEST_SPACE_URL }}
NEXT_PUBLIC_FINREASON_TASK3_LEADERBOARD_API_URL: ${{ vars.NEXT_PUBLIC_FINREASON_TASK3_LEADERBOARD_API_URL }}
run: npm run lint && npm run build:pages
- name: Verify rendered site and public contracts
env:
FINREASON_TASK1_SITE_MODE: ${{ vars.FINREASON_TASK1_SITE_MODE || 'development' }}
NEXT_PUBLIC_FINREASON_TASK1_DEVELOPMENT_SPACE_URL: ${{ vars.NEXT_PUBLIC_FINREASON_TASK1_DEVELOPMENT_SPACE_URL }}
NEXT_PUBLIC_FINREASON_TASK1_TEST_SPACE_URL: ${{ vars.NEXT_PUBLIC_FINREASON_TASK1_TEST_SPACE_URL }}
NEXT_PUBLIC_FINREASON_TASK1_LEADERBOARD_API_URL: ${{ vars.NEXT_PUBLIC_FINREASON_TASK1_LEADERBOARD_API_URL }}
FINREASON_TASK3_SITE_MODE: ${{ vars.FINREASON_TASK3_SITE_MODE || 'development' }}
NEXT_PUBLIC_FINREASON_TASK3_SCORING_SPACE_URL: ${{ vars.NEXT_PUBLIC_FINREASON_TASK3_SCORING_SPACE_URL }}
NEXT_PUBLIC_FINREASON_TASK3_TEST_SPACE_URL: ${{ vars.NEXT_PUBLIC_FINREASON_TASK3_TEST_SPACE_URL }}
NEXT_PUBLIC_FINREASON_TASK3_LEADERBOARD_API_URL: ${{ vars.NEXT_PUBLIC_FINREASON_TASK3_LEADERBOARD_API_URL }}
run: node --test tests/*.test.mjs
- name: Verify Pages privacy boundary
run: node scripts/task1/verify-public-boundary.mjs --root out
- name: Upload Pages artifact
uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0
with:
path: ./out
deploy:
if: github.ref == 'refs/heads/main'
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
permissions:
id-token: write
pages: write
steps:
- name: Deploy GitHub Pages
id: deployment
uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5.0.0