name: CI on: push: branches: - main pull_request: branches: - main jobs: lint: name: Lint / Ruff runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: "3.11" - name: Install Poetry run: | python -m pip install --upgrade pip python -m pip install poetry - name: Install dependencies run: poetry install --no-interaction - name: Run ruff run: poetry run ruff check . test: name: Test / Pytest coverage runs-on: ubuntu-latest needs: lint steps: - name: Checkout repository uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: "3.11" - name: Install Poetry run: | python -m pip install --upgrade pip python -m pip install poetry - name: Install dependencies run: poetry install --no-interaction - name: Run tests with coverage run: poetry run pytest build: name: Build / Poetry package runs-on: ubuntu-latest needs: test steps: - name: Checkout repository uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: "3.11" - name: Install Poetry run: | python -m pip install --upgrade pip python -m pip install poetry - name: Install dependencies run: poetry install --no-interaction - name: Build package run: poetry build - name: Upload build artifact uses: actions/upload-artifact@v4 with: name: python-package-dist path: dist/