The runner's cache server is reachable again since the VPS fix of 2026-10-03 (cache proxy pinned to port 28100, ufw rule scoped to the Docker job networks; diagnosed in #374). Bring caching back to check-rust through Swatinem/rust-cache, as #232 deferred. forgejo-runner v12.7.0 keeps what a pull_request run saves private to that PR, so PR runs alone would only warm later pushes to the same PR. A weekly scheduled run on main (Mondays 06:30 UTC) and workflow_dispatch write the shared entries that every PR falls back to. rust-cache v2.9+ declares node24 and the runner starts JavaScript actions with the container's node, so the job now installs Node.js 24. zstd is installed for faster, smaller cache archives. No npm cache in check-frontend, by decision: with per-PR isolation it would only serve later pushes of a PR, and npm ci takes 9s there. audit.yml loses two comments this change makes false. No CHANGELOG entry: CI configuration only. Refs #234 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
66 lines
1.9 KiB
YAML
66 lines
1.9 KiB
YAML
name: PR Check — Frontend
|
|
|
|
# Frontend half of the former check.yml (split in #232).
|
|
#
|
|
# Filtered with paths-ignore rather than an allowlist: this job costs ~2.5 min,
|
|
# so running it when it was not strictly needed is cheap, while silently NOT
|
|
# running it is not. A root-level config file added later would drop out of an
|
|
# allowlist without anyone noticing; here it fails safe.
|
|
#
|
|
# No `branches:` filter — see check-rust.yml.
|
|
|
|
on:
|
|
pull_request:
|
|
paths-ignore:
|
|
- 'src-tauri/**'
|
|
- '.cargo/**'
|
|
- 'docs/**'
|
|
- 'reports/**'
|
|
- 'tasks/**'
|
|
- '.github/**'
|
|
- '.claude/**'
|
|
- '.forgejo/workflows/check-rust.yml'
|
|
- '.forgejo/workflows/audit.yml'
|
|
- '.forgejo/workflows/release.yml'
|
|
- '*.md'
|
|
- 'LICENSE'
|
|
|
|
# Distinct group from the rust workflow — see check-rust.yml.
|
|
concurrency:
|
|
group: ci-frontend-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
frontend:
|
|
runs-on: ubuntu
|
|
container: ubuntu:22.04
|
|
steps:
|
|
- name: Install Node.js 20
|
|
run: |
|
|
apt-get update
|
|
apt-get install -y --no-install-recommends curl ca-certificates git
|
|
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
|
|
apt-get install -y nodejs
|
|
node --version
|
|
npm --version
|
|
|
|
- name: Checkout
|
|
uses: https://github.com/actions/checkout@v4
|
|
|
|
# No npm cache step, by decision (#234). The runner's cache works since
|
|
# 2026-10-03, but it keeps what a pull_request run saves private to that
|
|
# PR, and this workflow runs on PRs only: a cache would serve later
|
|
# pushes to the same PR, while `npm ci` takes 9s here (run 456) and
|
|
# each PR's first run would pay for the save.
|
|
|
|
- name: Install dependencies
|
|
run: npm ci
|
|
|
|
- name: Build (tsc + vite)
|
|
run: npm run build
|
|
|
|
- name: Tests (vitest)
|
|
run: npm test
|