courses: add exams and group assignments #6769
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: Make all packages and run their tests | |
# newer commits in the same PR abort running ones for the same workflow | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
workflow_dispatch: | |
inputs: | |
debug_enabled: | |
type: boolean | |
description: "Run the build with tmate debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate)" | |
required: false | |
default: false | |
env: | |
PGDATABASE: smc | |
PGUSER: smc | |
PGHOST: localhost | |
jobs: | |
doclinks: | |
runs-on: ubuntu-latest | |
# install python3, package requests, and run the script ./src/scripts/check_doc_links.py | |
steps: | |
- name: Setup tmate session | |
uses: mxschmitt/action-tmate@v3 | |
if: ${{ github.event_name == 'workflow_dispatch' && inputs.debug_enabled }} | |
with: | |
detached: true | |
- uses: actions/checkout@v4 | |
- name: Install python3 requests | |
run: sudo apt-get install python3-requests | |
- name: Check doc links | |
run: cd src/scripts && python3 check_doc_urls.py || sleep 5 || python3 check_doc_urls.py | |
build: | |
runs-on: ubuntu-latest | |
services: | |
postgres: | |
image: postgres:14 | |
env: | |
POSTGRES_DB: smc | |
POSTGRES_USER: smc | |
POSTGRES_HOST_AUTH_METHOD: trust | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
ports: | |
- 5432:5432 | |
strategy: | |
matrix: | |
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/ | |
node-version: | |
- "18.17.1" | |
steps: | |
# Enable tmate debugging of manually-triggered workflows if the input option was provided | |
- name: Setup tmate session | |
uses: mxschmitt/action-tmate@v3 | |
if: ${{ github.event_name == 'workflow_dispatch' && inputs.debug_enabled }} | |
with: | |
detached: true | |
- uses: actions/checkout@v4 | |
- name: Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
# https://github.com/actions/setup-node/blob/main/docs/advanced-usage.md#caching-packages-data | |
# caching, etc., doesn't work without using "uses: pnpm/action-setup@v2", and that | |
# doesn't work, since it makes assumptions about the layout of the repo (e.g., where package.json is), | |
# which aren't true. | |
# cache: "pnpm" | |
# cache-dependency-path: "src/packages/pnpm-lock.yaml" | |
- run: cd src && npm install -g pnpm | |
- run: cd src && pnpm run make | |
- run: cd src && pnpm run test |