diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..97752e7 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,65 @@ +name: HTTP Protocol Testing CI + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + lint: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: "Install uv" + uses: astral-sh/setup-uv@v5 + with: + enable-cache: true + cache-dependency-glob: "uv.lock" + + - name: "Set up Python" + uses: actions/setup-python@v5 + with: + python-version-file: ".python-version" + + - name: "Install dependencies" + run: | + uv sync --all-extras --dev + + - name: "Lint with ruff" + run: | + uv run ruff check -v + + - name: "Type check with mypy" + run: | + uv run mypy . -v + + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: "Install uv" + uses: astral-sh/setup-uv@v5 + with: + enable-cache: true + cache-dependency-glob: "uv.lock" + + - name: "Set up Python" + uses: actions/setup-python@v5 + with: + python-version-file: ".python-version" + + - name: "Install dependencies" + run: | + uv sync --all-extras --dev + + - name: "Run unit tests" + run: | + uv run pytest tests/unit/ + + - name: "Run integration tests" + run: | + uv run pytest tests/integration/