name: CI on: push: branches: [main] pull_request: jobs: frontend: name: Frontend (TypeScript) runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 20 cache: npm - run: npm ci --ignore-scripts - run: npm run check - run: npm test - run: npm run build server: name: Serveur (Rust) runs-on: ubuntu-latest defaults: run: working-directory: server steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable with: components: rustfmt, clippy - uses: Swatinem/rust-cache@v2 with: workspaces: server - run: cargo fmt --check - run: cargo clippy --locked --all-targets -- -D warnings - run: cargo test --locked ffmpeg-service: name: Service vidéo (Python) runs-on: ubuntu-latest defaults: run: working-directory: ffmpeg-service steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: "3.11" cache: pip cache-dependency-path: ffmpeg-service/requirements*.txt - run: pip install -r requirements-dev.txt - run: ruff check . - run: ruff format --check . - run: pytest -q