Switch to uv
#1852
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |