diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..6c4abf1 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,48 @@ +name: Build and publish to Pypi +on: + release: + # job will automatically run after a new "release" is create on github. + types: [published] + +jobs: + publish_fastapi_websocket_rpc: + runs-on: ubuntu-latest + environment: + name: pypi + url: https://pypi.org/p/permit + permissions: + id-token: write + contents: write # 'write' access to repository contents + pull-requests: write # 'write' access to pull requests + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Python setup + uses: actions/setup-python@v5 + with: + python-version: '3.11.8' + + - name: Bump version and build package + run: | + # Get version tag and remove 'v' prefix + version_tag=${{ github.event.release.tag_name }} + version_tag=${version_tag#v} + + # Update version in setup.py + sed -i "s/version=\"[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\"/version=\"$version_tag\"/" setup.py + + # Print version for verification + echo "Version being published: $version_tag" + cat setup.py | grep version= + + - name: Build Python package + run: | + pip install wheel + python setup.py sdist bdist_wheel + + # Publish package distributions to PyPI + - name: Publish package distributions to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 + with: + password: ${{ secrets.PYPI_TOKEN }} diff --git a/.gitignore b/.gitignore index 7d6da5c..8d02e6c 100644 --- a/.gitignore +++ b/.gitignore @@ -130,3 +130,4 @@ dmypy.json # editors .vscode/ +.idea/ \ No newline at end of file diff --git a/requirements-dev.txt b/requirements-dev.txt index b4d1f17..d01f434 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -6,4 +6,4 @@ wheel loguru uvicorn pytest-timeout -permit-broadcaster[redis,postgres,kafka]>=0.2.5,<3 \ No newline at end of file +permit-broadcaster[redis,postgres,kafka]>=0.2.5,<1 \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 4686357..63ded64 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,4 +2,4 @@ fastapi-websocket-rpc>=0.1.25,<1 packaging>=20.4 pydantic>=1.9.1 websockets>=14.0 -permit-broadcaster>=0.2.5,<3 \ No newline at end of file +permit-broadcaster>=0.2.5,<1 \ No newline at end of file diff --git a/setup.py b/setup.py index b996403..33ea72c 100644 --- a/setup.py +++ b/setup.py @@ -31,9 +31,9 @@ def get_requirements(env=""): python_requires=">=3.9", install_requires=get_requirements(), extras_require = { - "redis": ["permit-broadcaster[redis]>=0.2.5,<3"], - "postgres": ["permit-broadcaster[postgres]>=0.2.5,<3"], - "kafka": ["permit-broadcaster[kafka]>=0.2.5,<3"], - "all": ["permit-broadcaster[redis,postgres,kafka]>=0.2.5,<3"], + "redis": ["permit-broadcaster[redis]>=0.2.5,<1"], + "postgres": ["permit-broadcaster[postgres]>=0.2.5,<1"], + "kafka": ["permit-broadcaster[kafka]>=0.2.5,<1"], + "all": ["permit-broadcaster[redis,postgres,kafka]>=0.2.5,<1"], } )