name: CI on: push: pull_request: jobs: backend: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: "3.11" - name: Install Python dependencies run: | python -m pip install --upgrade pip pip install -r requirements.lock - name: Pip check run: pip check - name: Import greenlet run: python -c "import greenlet; print(greenlet.__version__)" - name: Ruff run: ruff check backend - name: Mypy run: mypy backend/app - name: Pytest run: pytest shell: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install ShellCheck run: sudo apt-get update && sudo apt-get install -y shellcheck - name: Bash syntax check run: | bash -n scripts/install-pi.sh bash -n scripts/update-pi.sh bash -n scripts/install-linux.sh bash -n scripts/update-linux.sh bash -n scripts/uninstall-linux.sh bash -n scripts/lib/install-common.sh - name: ShellCheck run: | shellcheck scripts/install-pi.sh shellcheck scripts/update-pi.sh shellcheck scripts/install-linux.sh shellcheck scripts/update-linux.sh shellcheck scripts/uninstall-linux.sh shellcheck scripts/lib/install-common.sh frontend: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 with: version: 10.28.2 - uses: actions/setup-node@v4 with: node-version: "20.19.2" cache: "pnpm" - name: Install frontend dependencies run: pnpm install --frozen-lockfile - name: Frontend lint run: pnpm lint - name: Frontend typecheck run: pnpm typecheck - name: Frontend tests run: pnpm test - name: Frontend build run: pnpm build arm64-smoke: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: docker/setup-qemu-action@v3 - name: ARM64 compile check run: docker run --rm --platform linux/arm64/v8 -v "$PWD":/workspace -w /workspace python:3.11-slim python -m compileall backend