Files
flowdeck/.gitea/workflows/ci.yml
T
bruno e9b6244ef0
FlowDeck CI / test (push) Successful in 2m57s
FlowDeck CI / docker (push) Successful in 1m9s
ci: fix checkout (no Node in python:slim) + setup-python + WeasyPrint libs
Le job test tournait dans un container python:3.12-slim sans Node.js, donc
l'action JavaScript actions/checkout@v4 echouait des la 1ere seconde pour
tous les commits. On retire le container (image par defaut du runner = Node
dispo), on installe Python 3.12 via actions/setup-python@v5, les libs natives
WeasyPrint et on supprime le re-run complet de la suite dans le resume.
2026-09-10 11:27:42 -04:00

50 lines
1.7 KiB
YAML

name: FlowDeck CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
# NOTE: no `container:` here. A `python:*-slim` image ships no Node.js, so the
# JavaScript `actions/checkout` action could not run and every job failed at
# the first step. The runner's default image already provides Node; we install
# the Python toolchain explicitly with actions/setup-python.
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install system dependencies (WeasyPrint / emoji fonts)
run: |
SUDO=""
if command -v sudo >/dev/null 2>&1; then SUDO="sudo"; fi
$SUDO apt-get update
$SUDO apt-get install -y --no-install-recommends \
libpango-1.0-0 libpangoft2-1.0-0 libharfbuzz0b libffi-dev \
libjpeg-dev libopenjp2-7 libcairo2 fonts-noto-color-emoji
- name: Install Python dependencies
run: pip install -r requirements.txt pytest pytest-cov
- name: Run tests with coverage
env:
GITEA_URL: https://git.dracodev.net
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
APP_SECRET_KEY: ci-test-key
run: python -m pytest tests/ -v --tb=short --cov=app --cov-report=term
- name: Coverage summary
if: always()
run: coverage report -m || true
docker:
runs-on: ubuntu-latest
needs: test
steps:
- uses: actions/checkout@v4
- name: Build Docker image
run: docker build -t flowdeck .
- name: Verify image
run: docker run --rm flowdeck python -c "from app.main import app; print('OK')"