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.
50 lines
1.7 KiB
YAML
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')"
|