name: CI on: push: branches: [main] pull_request: branches: [main] jobs: lint: name: Lint runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: "3.12" - name: Install ruff run: pip install ruff>=0.8.0 - name: Ruff check run: ruff check . - name: Ruff format check run: ruff format --check . test: name: Test runs-on: ubuntu-latest needs: lint steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: "3.12" - name: Cache pip uses: actions/cache@v4 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt') }} restore-keys: ${{ runner.os }}-pip- - name: Install dependencies run: pip install -r requirements.txt - name: Run tests run: pytest -v --tb=short docker: name: Docker Build runs-on: ubuntu-latest needs: test steps: - uses: actions/checkout@v4 - name: Build image run: docker build -t adiuva-api:ci . - name: Verify gunicorn installed run: docker run --rm adiuva-api:ci gunicorn --version