Skip to content

Cube and colour: the app, the site and the README on one design (#66) #165

Cube and colour: the app, the site and the README on one design (#66)

Cube and colour: the app, the site and the README on one design (#66) #165

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
jobs:
# First, and on the cheapest runner there is: style is the half of review a
# script can do, and nobody should hear about a trailing space from a person.
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- run: ./scripts/lint.sh
# SECURITY.md asks people to grant Accessibility and Screen Recording on the
# strength of what it says. This is the half of that page a script can settle,
# so a commit that quietly falsifies one of its claims fails here rather than
# leaving the document to promise something that stopped being true. The
# claims about a signed bundle are checked where the signing happens, in
# scripts/build.sh.
security-claims:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- run: ./scripts/check-security-claims.sh
app:
# macos-14 still ships Swift 5.10; Package.swift needs tools version 6.0.
runs-on: macos-15
steps:
- uses: actions/checkout@v5
- name: Build
run: swift build
working-directory: App
- name: Test
run: ./scripts/test.sh
mcp:
runs-on: macos-15
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5
with:
node-version: 20
cache: npm
cache-dependency-path: mcp/package-lock.json
- run: npm ci
working-directory: mcp
- run: npm run typecheck
working-directory: mcp
- run: npm test
working-directory: mcp
# The catalog and the Swift that reads it are two files that have to agree,
# and nothing about a mismatch is visible until a key shows up on screen.
strings:
runs-on: macos-15
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5
with:
node-version: 20
- run: node scripts/check-strings.mjs
# Deliberately the cheapest job in the file: a pull request that adds one
# layout to zone-sets/ gets an answer in seconds, on a runner that is not
# queueing behind a Swift build it did not touch.
zone-sets:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5
with:
node-version: 20
- run: node scripts/check-zone-sets.mjs