diff --git a/.github/workflows/python-ci.yml b/.github/workflows/python-ci.yml new file mode 100644 index 0000000..98d67e3 --- /dev/null +++ b/.github/workflows/python-ci.yml @@ -0,0 +1,36 @@ +name: Python CI + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + build: + 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: "agent/python-agent/uv.lock" + + - name: Set up Python + run: uv python install + + - name: Install dependencies + run: uv sync --all-groups + working-directory: agent/python-agent + + - name: Type check with pyright + run: uv run --frozen pyright + working-directory: agent/python-agent + continue-on-error: true + + - name: Lint with ruff + run: uv run --frozen ruff check . + working-directory: agent/python-agent + continue-on-error: true diff --git a/.github/workflows/web-ci.yml b/.github/workflows/web-ci.yml new file mode 100644 index 0000000..3f260f0 --- /dev/null +++ b/.github/workflows/web-ci.yml @@ -0,0 +1,32 @@ +name: Web CI + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Use Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + cache: 'npm' + cache-dependency-path: client/web/package-lock.json + + - name: Install dependencies + run: npm ci + working-directory: client/web + + - name: Type check + run: npx tsc --noEmit + working-directory: client/web + + - name: Build + run: npm run build + working-directory: client/web diff --git a/agent/python-agent/pyproject.toml b/agent/python-agent/pyproject.toml index 05d175b..8824f8c 100644 --- a/agent/python-agent/pyproject.toml +++ b/agent/python-agent/pyproject.toml @@ -1,6 +1,7 @@ [project] name = "maui-a2ui-python" version = "0.1.0" +requires-python = ">=3.12" dependencies = [ "google-genai>=1.64.0", "a2a-sdk>=0.3.0", @@ -9,6 +10,12 @@ dependencies = [ "jsonschema>=4.0.0", ] +[dependency-groups] +dev = [ + "pyright>=1.1.391", + "ruff>=0.9.1", +] + [build-system] requires = ["hatchling"] build-backend = "hatchling.build"