name: CI
on:
push:
branches: [main, feature/**]
pull_request:
branches: [main]
jobs:
ci:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Cache pip packages
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements*.txt') }}
- name: Install dependencies
run: |
pip install -r requirements-dev.txt
- name: Format check
run: ruff format --check .
- name: Lint
run: ruff check .
- name: Run tests with coverage
run: pytest --cov=. --cov-fail-under=80 --cov-report=term-missing
- name: Build Docker image
run: docker build -t hello-flask-sz:latest .