Reduce low risk duplication (#79)

* clean up helpers

* shared in it's own top level folder

* workspaces setup

* build fix

* disable workspaces?

* run ci

* rename job-flow to gradcracker

* optional dependencies

* formatting?

* more optional modules

* allow post install runs

* node bump

* remove post install

* add optionals

* add more

* formatting

* comments, but im unsure

* run typescript DIRECTLY

* better build

* camoufox simplification

* lint

* build process doesn't exist

* build fix

* lockfile

* type check everything, build only for client

* rename steps correctly

* import from package!

* fix formatting

* don't fetch twice

* fix concern
This commit is contained in:
Shaheer Sarfaraz
2026-02-02 21:30:14 +00:00
committed by GitHub
parent 179deffe13
commit b94f85b149
165 changed files with 8909 additions and 13638 deletions
+27 -25
View File
@@ -31,45 +31,47 @@ jobs:
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 22
cache: "npm"
cache-dependency-path: orchestrator/package-lock.json
cache-dependency-path: package-lock.json
- name: Install dependencies
run: npm ci
working-directory: orchestrator
run: npm ci --workspaces --include-workspace-root
working-directory: .
- name: Build better-sqlite3
run: npm --workspace orchestrator rebuild better-sqlite3
working-directory: .
- name: Run Vitest
run: npm run test:run
working-directory: orchestrator
run: npm --workspace orchestrator run test:run
working-directory: .
build:
name: Build Verification
typecheck:
name: Type Check
runs-on: ubuntu-latest
strategy:
matrix:
project: [orchestrator, extractors/gradcracker, extractors/ukvisajobs]
project: [orchestrator, gradcracker-extractor, ukvisajobs-extractor]
steps:
- uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 22
cache: "npm"
cache-dependency-path: ${{ matrix.project }}/package-lock.json
cache-dependency-path: package-lock.json
- name: Install dependencies
run: |
if [[ "${{ matrix.project }}" == extractors/* ]]; then
npm ci --ignore-scripts
else
npm ci
fi
working-directory: ${{ matrix.project }}
run: npm ci --workspaces --include-workspace-root
working-directory: .
- name: Type Check (orchestrator only)
- name: Check shared package types
run: npm run check:types:shared
working-directory: .
- name: Type Check ${{ matrix.project }}
run: npm --workspace ${{ matrix.project }} run check:types
working-directory: .
- name: Build ${{ matrix.project }} (client)
if: matrix.project == 'orchestrator'
run: npm run check:types
working-directory: ${{ matrix.project }}
- name: Build ${{ matrix.project }}
run: npm run build
working-directory: ${{ matrix.project }}
run: npm --workspace orchestrator run build:client
working-directory: .