Add Rust web shell for core pages #43
This file contains hidden or 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", "master"] | |
| pull_request: | |
| jobs: | |
| django-core: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Install app dependencies | |
| run: | | |
| python -m venv .venv | |
| source .venv/bin/activate | |
| python -m pip install --upgrade pip | |
| python -m pip install -r requirements.txt | |
| python -m pip install -r requirements-prod.txt | |
| - name: Django checks and smoke setup | |
| env: | |
| SECRET_KEY: ci-secret-key | |
| DEBUG: 'True' | |
| DATABASE_URL: sqlite:///db.sqlite3 | |
| RUST_ONLY_MODE: 'False' | |
| run: | | |
| source .venv/bin/activate | |
| mkdir -p static media staticfiles | |
| python manage.py makemigrations --check --dry-run | |
| python manage.py migrate --noinput | |
| python manage.py seed_demo || true | |
| python manage.py seed_catalog || true | |
| python manage.py seed_requirements || true | |
| python manage.py seed_product_security || true | |
| make team-test | |
| nix-devshell: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: cachix/install-nix-action@v30 | |
| with: | |
| extra_nix_config: | | |
| experimental-features = nix-command flakes | |
| - name: Nix dev shell smoke test | |
| run: | | |
| nix develop --command bash -lc ' | |
| python -m venv .venv-nix-ci | |
| source .venv-nix-ci/bin/activate | |
| python -m ensurepip --upgrade | |
| python -m pip install --upgrade pip setuptools wheel | |
| python -m pip install -r requirements.txt | |
| cp .env.example .env | |
| printf '\nRUST_ONLY_MODE=False\n' >> .env | |
| mkdir -p static media staticfiles | |
| make team-test | |
| ' | |
| rust-backend-tests: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| toolchain: stable | |
| components: rustfmt, clippy | |
| - name: Check Rust formatting | |
| run: | | |
| cargo fmt --manifest-path rust/iscy-backend/Cargo.toml -- --check | |
| - name: Run Rust clippy | |
| run: | | |
| cargo clippy --manifest-path rust/iscy-backend/Cargo.toml --all-targets -- -D warnings | |
| - name: Run Rust backend tests | |
| run: | | |
| cargo test --manifest-path rust/iscy-backend/Cargo.toml | |
| docker-config: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Validate docker compose files | |
| run: | | |
| cp .env.example .env | |
| docker compose -f docker-compose.yml config | |
| docker compose -f docker-compose.yml -f docker-compose.llm.yml config | |
| docker compose -f docker-compose.yml -f docker-compose.stage.yml config | |
| docker compose -f docker-compose.yml -f docker-compose.prod.yml config | |
| docker compose -f docker-compose.yml -f docker-compose.prod.yml -f docker-compose.llm.yml config |