CI / Build Pip package (push) Successful in 4m8s
Instrument HTTP requests and WebSocket connections via Kaya hooks, covering both ASGI and RSGI. Records handler exceptions, WebSocket close codes, optional header capture, exclusions and lifecycle hooks. Add route-template resolution and exception visibility to kaya-core so trace/metric attributes can use low-cardinality routes and failed spans can record escaped exceptions.
147 lines
6.5 KiB
YAML
147 lines
6.5 KiB
YAML
name: CI
|
|
on:
|
|
push:
|
|
tags:
|
|
- 'release/*'
|
|
jobs:
|
|
build_pip_package:
|
|
name: "Build Pip package"
|
|
runs-on: hostinger
|
|
timeout-minutes: 30
|
|
container:
|
|
image: gitea.woggioni.net/woggioni/gitea-runner/ubuntu:26.04
|
|
steps:
|
|
- name: Checkout sources
|
|
uses: actions/checkout@v6
|
|
with:
|
|
fetch-depth: 0
|
|
fetch-tags: true
|
|
- uses: actions/setup-python@v6
|
|
with:
|
|
python-version: '3.14.6'
|
|
cache: 'pip'
|
|
- name: Install dependencies
|
|
run: |
|
|
python -m venv .venv
|
|
.venv/bin/pip install -r requirements-dev.txt
|
|
- name: Check kaya-core
|
|
run: |
|
|
.venv/bin/python -m mypy -p kaya.core
|
|
.venv/bin/python -m unittest discover -s packages/kaya-core/tests
|
|
- name: Check kaya-rsgi
|
|
run: |
|
|
.venv/bin/python -m mypy -p kaya.rsgi
|
|
.venv/bin/python -m unittest discover -s packages/kaya-rsgi/tests
|
|
- name: Check kaya-session
|
|
run: |
|
|
.venv/bin/python -m mypy -p kaya.session
|
|
.venv/bin/python -m unittest discover -s packages/kaya-session/tests
|
|
- name: Check kaya-session-memcache
|
|
run: |
|
|
.venv/bin/python -m mypy -p kaya.session.memcache
|
|
.venv/bin/python -m unittest discover -s packages/kaya-session-memcache/tests
|
|
- name: Check kaya-session-redis
|
|
run: |
|
|
.venv/bin/python -m mypy -p kaya.session.redis
|
|
.venv/bin/python -m unittest discover -s packages/kaya-session-redis/tests
|
|
- name: Check kaya-oidc
|
|
run: |
|
|
.venv/bin/python -m mypy -p kaya.oidc
|
|
.venv/bin/python -m unittest discover -s packages/kaya-oidc/tests
|
|
- name: Check kaya-openapi
|
|
run: |
|
|
.venv/bin/python -m mypy -p kaya.openapi
|
|
.venv/bin/python -m unittest discover -s packages/kaya-openapi/tests
|
|
- name: Check kaya-cors
|
|
run: |
|
|
.venv/bin/python -m mypy -p kaya.cors
|
|
.venv/bin/python -m unittest discover -s packages/kaya-cors/tests
|
|
- name: Check kaya-forwarded
|
|
run: |
|
|
.venv/bin/python -m mypy -p kaya.forwarded
|
|
.venv/bin/python -m unittest discover -s packages/kaya-forwarded/tests
|
|
- name: Check kaya-otel
|
|
run: |
|
|
.venv/bin/python -m mypy -p kaya.otel
|
|
.venv/bin/python -m unittest discover -s packages/kaya-otel/tests
|
|
- name: Publish kaya-core artifacts
|
|
env:
|
|
TWINE_REPOSITORY_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
|
TWINE_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
|
TWINE_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
|
run: |
|
|
.venv/bin/pyproject-build packages/kaya-core
|
|
.venv/bin/twine upload --repository gitea packages/kaya-core/dist/*.whl packages/kaya-core/dist/*.tar.gz
|
|
- name: Publish kaya-rsgi artifacts
|
|
env:
|
|
TWINE_REPOSITORY_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
|
TWINE_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
|
TWINE_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
|
run: |
|
|
.venv/bin/pyproject-build packages/kaya-rsgi
|
|
.venv/bin/twine upload --repository gitea packages/kaya-rsgi/dist/*.whl packages/kaya-rsgi/dist/*.tar.gz
|
|
- name: Publish kaya-session artifacts
|
|
env:
|
|
TWINE_REPOSITORY_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
|
TWINE_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
|
TWINE_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
|
run: |
|
|
.venv/bin/pyproject-build packages/kaya-session
|
|
.venv/bin/twine upload --repository gitea packages/kaya-session/dist/*.whl packages/kaya-session/dist/*.tar.gz
|
|
- name: Publish kaya-session-memcache artifacts
|
|
env:
|
|
TWINE_REPOSITORY_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
|
TWINE_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
|
TWINE_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
|
run: |
|
|
.venv/bin/pyproject-build packages/kaya-session-memcache
|
|
.venv/bin/twine upload --repository gitea packages/kaya-session-memcache/dist/*.whl packages/kaya-session-memcache/dist/*.tar.gz
|
|
- name: Publish kaya-session-redis artifacts
|
|
env:
|
|
TWINE_REPOSITORY_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
|
TWINE_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
|
TWINE_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
|
run: |
|
|
.venv/bin/pyproject-build packages/kaya-session-redis
|
|
.venv/bin/twine upload --repository gitea packages/kaya-session-redis/dist/*.whl packages/kaya-session-redis/dist/*.tar.gz
|
|
- name: Publish kaya-oidc artifacts
|
|
env:
|
|
TWINE_REPOSITORY_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
|
TWINE_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
|
TWINE_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
|
run: |
|
|
.venv/bin/pyproject-build packages/kaya-oidc
|
|
.venv/bin/twine upload --repository gitea packages/kaya-oidc/dist/*.whl packages/kaya-oidc/dist/*.tar.gz
|
|
- name: Publish kaya-openapi artifacts
|
|
env:
|
|
TWINE_REPOSITORY_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
|
TWINE_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
|
TWINE_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
|
run: |
|
|
.venv/bin/pyproject-build packages/kaya-openapi
|
|
.venv/bin/twine upload --repository gitea packages/kaya-openapi/dist/*.whl packages/kaya-openapi/dist/*.tar.gz
|
|
- name: Publish kaya-cors artifacts
|
|
env:
|
|
TWINE_REPOSITORY_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
|
TWINE_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
|
TWINE_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
|
run: |
|
|
.venv/bin/pyproject-build packages/kaya-cors
|
|
.venv/bin/twine upload --repository gitea packages/kaya-cors/dist/*.whl packages/kaya-cors/dist/*.tar.gz
|
|
- name: Publish kaya-forwarded artifacts
|
|
env:
|
|
TWINE_REPOSITORY_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
|
TWINE_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
|
TWINE_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
|
run: |
|
|
.venv/bin/pyproject-build packages/kaya-forwarded
|
|
.venv/bin/twine upload --repository gitea packages/kaya-forwarded/dist/*.whl packages/kaya-forwarded/dist/*.tar.gz
|
|
- name: Publish kaya-otel artifacts
|
|
env:
|
|
TWINE_REPOSITORY_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
|
TWINE_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
|
TWINE_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
|
run: |
|
|
.venv/bin/pyproject-build packages/kaya-otel
|
|
.venv/bin/twine upload --repository gitea packages/kaya-otel/dist/*.whl packages/kaya-otel/dist/*.tar.gz
|