Skip to content

Switch to uv

Switch to uv #1853

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
schedule:
- cron: "17 3 * * 0"
concurrency:
group: ${{ github.head_ref || github.ref_name }}
cancel-in-progress: true
jobs:
lint:
name: Lint and typecheck Python
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Install uv
uses: astral-sh/setup-uv@v5
- name: Install Dependencies
run: uv sync --frozen
- name: "Ruff"
run: |
uv run ruff check
- uses: crate-ci/typos@master
- name: "Set up local settings"
run: cp local_settings_example.py local_settings.py
- name: "Mypy"
run: uv run ./.ci/run-mypy.sh
- name: "Safety"
run: uv run ./.ci/run-safety.sh
env:
SAFETY_API_KEY: ${{ secrets.SAFETY_API_KEY }}
- name: "Sphinx"
run: |
(cd doc; uv run make html SPHINXOPTS="-W --keep-going -n")
frontend:
name: Lint JS/build frontend (Node ${{ matrix.node-version }})
runs-on: ubuntu-latest
strategy:
matrix:
node-version: ['16', '18', '20']
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Install
run: npm install
- name: ESLint
run: npx eslint frontend/js/*.js
- name: Rollup build
run: npm run build
pytest:
name: Python ${{ matrix.python-version }} - ${{ matrix.suite }}
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.10', '3.11', '3.x']
suite: ['base', 'postgres', 'expensive']
services:
postgres:
image: postgres
env:
POSTGRES_PASSWORD: relatepgpass
POSTGRES_DB: test_relate
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install uv
uses: astral-sh/setup-uv@v5
- name: Install Dependencies
run: uv sync --frozen --extra postgres
- name: Install OS dependencies
env:
DEBIAN_FRONTEND: noninteractive
run: |
sudo apt-get install gettext
- name: Run test suite
env:
RL_CI_TEST: ${{ matrix.suite }}
run: |
bash ./.ci/run-tests-for-ci.sh
- name: Test command line tool
if: matrix.suite == 'base'
run: |
git clone https://github.com/inducer/relate-sample
cd relate-sample
uv run relate validate .
uv run relate test-code questions/autograded-python-example.yml
uv run relate expand-yaml flows/quiz-test.yml > /dev/null
pytest-windows:
name: Python - Windows
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Install uv
uses: astral-sh/setup-uv@v5
- name: Install Dependencies
run: |
uv sync --frozen
- name: Run test suite
run: |
bash ./.ci/run-tests-for-ci.sh
# vim: sw=2