generated from nhcarrigan/template
feat: add multilingual support so Naomi can use Python too
This commit is contained in:
+64
-30
@@ -1,47 +1,81 @@
|
||||
name: Node.js CI
|
||||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
branches: [main]
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
branches: [main]
|
||||
|
||||
jobs:
|
||||
ci:
|
||||
name: CI
|
||||
dependency-pin-check-typescript:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout Source Files
|
||||
uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v4
|
||||
- name: Copy TypeScript files to root
|
||||
run: |
|
||||
cp typescript/package.json .
|
||||
cp typescript/package-lock.json . 2>/dev/null || true
|
||||
cp typescript/pnpm-lock.yaml . 2>/dev/null || true
|
||||
- uses: naomi-lgbt/dependency-pin-check@main
|
||||
|
||||
- name: Use Node.js v24
|
||||
uses: actions/setup-node@v4
|
||||
dependency-pin-check-python:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Copy Python files to root
|
||||
run: |
|
||||
cp python/requirements.txt .
|
||||
cp python/pyproject.toml .
|
||||
- uses: naomi-lgbt/dependency-pin-check@main
|
||||
|
||||
typescript:
|
||||
needs: dependency-pin-check-typescript
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 10.15.0
|
||||
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 24
|
||||
cache: 'pnpm'
|
||||
cache-dependency-path: typescript/pnpm-lock.yaml
|
||||
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@v2
|
||||
- name: Install dependencies
|
||||
run: make install-ts
|
||||
|
||||
- name: Run ESLint
|
||||
run: make lint-ts
|
||||
|
||||
- name: Build TypeScript
|
||||
run: make build
|
||||
|
||||
- name: Run tests
|
||||
run: make test
|
||||
|
||||
python:
|
||||
needs: dependency-pin-check-python
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
version: 10
|
||||
python-version: '3.12'
|
||||
|
||||
- name: Ensure Dependencies are Pinned
|
||||
uses: naomi-lgbt/dependency-pin-check@main
|
||||
- name: Install uv
|
||||
uses: astral-sh/setup-uv@v5
|
||||
with:
|
||||
language: javascript
|
||||
dev-dependencies: true
|
||||
peer-dependencies: true
|
||||
optional-dependencies: true
|
||||
enable-cache: true
|
||||
|
||||
- name: Install Dependencies
|
||||
run: pnpm install
|
||||
- name: Install dependencies
|
||||
run: make install-py
|
||||
|
||||
- name: Lint Source Files
|
||||
run: pnpm run lint
|
||||
- name: Run Ruff linter
|
||||
run: make lint-py
|
||||
|
||||
- name: Verify Build
|
||||
run: pnpm run build
|
||||
|
||||
- name: Run Tests
|
||||
run: pnpm run test
|
||||
- name: Check Ruff formatting
|
||||
run: make format-check-py
|
||||
Reference in New Issue
Block a user