Skip to content

add architecture description with websockets to docs #91

add architecture description with websockets to docs

add architecture description with websockets to docs #91

Workflow file for this run

# SPDX-FileCopyrightText: 2025 robot-visual-perception
#
# SPDX-License-Identifier: CC0-1.0
name: CI Pipeline
on:
push:
branches: [main] # pushes to main
pull_request:
branches: [main] # # PRs to main
jobs:
# Lint stage
lint-licensing:
name: Lint licensing (REUSE)
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: REUSE Compliance Check
uses: fsfe/reuse-action@v4
lint-frontend:
name: Lint frontend
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: 'src/frontend/package-lock.json'
- name: Install dependencies
working-directory: src/frontend
run: npm ci
- name: Lint
run: make lint-frontend
lint-backend:
name: Lint backend
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v3
- name: Set up Python
run: uv python install 3.11
- name: Install dependencies
run: make install-backend
- name: Lint
run: make lint-backend
# Build stage
build-frontend:
name: Build frontend
runs-on: ubuntu-latest
needs: [lint-frontend]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: 'src/frontend/package-lock.json'
- name: Install dependencies
working-directory: src/frontend
run: npm ci
- name: Build
working-directory: src/frontend
run: npm run build
build-backend:
name: Build backend
runs-on: ubuntu-latest
needs: [lint-backend]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v3
- name: Set up Python
run: uv python install 3.11
- name: Install dependencies
run: make install-backend
# use py_compile instead of running main.py
# because main.py contains a web server that runs forever
- name: Build (syntax check)
working-directory: src/backend
run: uv run python -m py_compile main.py
# Test stage
test-frontend:
name: Test frontend
runs-on: ubuntu-latest
needs: [build-frontend]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: 'src/frontend/package-lock.json'
- name: Install dependencies
working-directory: src/frontend
run: npm ci
- name: Test
run: make test-frontend
test-backend:
name: Test backend
runs-on: ubuntu-latest
needs: [build-backend]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v3
- name: Set up Python
run: uv python install 3.11
- name: Install dependencies
run: make install-backend
- name: Test
run: make test-backend
# Package stage
package-frontend:
name: Package frontend
runs-on: ubuntu-latest
needs: [test-frontend]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build Docker image
run: make docker-build-frontend
package-backend:
name: Package backend
runs-on: ubuntu-latest
needs: [test-backend]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build Docker image
run: make docker-build-backend