feat: new build process and workflows
Some checks failed
Publish to PyPI / Build (docker-amd64, py3.10) (push) Failing after 28s
Publish to PyPI / Build (docker-arm64, py3.10) (push) Failing after 46s
Publish to PyPI / Build (docker-amd64, py3.11) (push) Failing after 30s
Publish to PyPI / Build (docker-arm64, py3.11) (push) Failing after 46s
Publish to PyPI / Build (docker-amd64, py3.12) (push) Failing after 28s
Publish to PyPI / Build (docker-arm64, py3.12) (push) Failing after 43s
Publish to PyPI / Publish to PyPI (push) Has been skipped
Some checks failed
Publish to PyPI / Build (docker-amd64, py3.10) (push) Failing after 28s
Publish to PyPI / Build (docker-arm64, py3.10) (push) Failing after 46s
Publish to PyPI / Build (docker-amd64, py3.11) (push) Failing after 30s
Publish to PyPI / Build (docker-arm64, py3.11) (push) Failing after 46s
Publish to PyPI / Build (docker-amd64, py3.12) (push) Failing after 28s
Publish to PyPI / Build (docker-arm64, py3.12) (push) Failing after 43s
Publish to PyPI / Publish to PyPI (push) Has been skipped
ver: bump
This commit is contained in:
parent
c80625a418
commit
58815eec71
5 changed files with 78 additions and 17 deletions
|
|
@ -7,10 +7,16 @@ on:
|
|||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
publish:
|
||||
runs-on: docker-amd64
|
||||
build:
|
||||
name: Build (${{ matrix.runner }}, py${{ matrix.python }})
|
||||
runs-on: ${{ matrix.runner }}
|
||||
container:
|
||||
image: python:3.12-bookworm
|
||||
image: python:${{ matrix.python }}-bookworm
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
python: ["3.10", "3.11", "3.12"]
|
||||
runner: [docker-amd64, docker-arm64]
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
|
|
@ -20,13 +26,36 @@ jobs:
|
|||
.
|
||||
|
||||
- name: Install build tools
|
||||
run: pip install build twine
|
||||
run: pip install build Cython
|
||||
|
||||
- name: Build package
|
||||
run: python -m build
|
||||
- name: Build wheel
|
||||
run: python -m build --wheel
|
||||
|
||||
- name: Upload wheel artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: wheel-${{ matrix.runner }}-py${{ matrix.python }}
|
||||
path: dist/*.whl
|
||||
|
||||
publish:
|
||||
name: Publish to PyPI
|
||||
needs: build
|
||||
runs-on: docker-amd64
|
||||
container:
|
||||
image: python:3.12-bookworm
|
||||
|
||||
steps:
|
||||
- name: Download all wheels
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
path: dist/
|
||||
merge-multiple: true
|
||||
|
||||
- name: Install twine
|
||||
run: pip install twine
|
||||
|
||||
- name: Publish to PyPI
|
||||
env:
|
||||
TWINE_USERNAME: __token__
|
||||
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
|
||||
run: twine upload dist/*
|
||||
run: twine upload dist/**/*.whl
|
||||
|
|
|
|||
4
.gitignore
vendored
4
.gitignore
vendored
|
|
@ -52,6 +52,10 @@ dist/
|
|||
*.egg
|
||||
*.sh
|
||||
|
||||
# Cython generated files
|
||||
*.so
|
||||
*.c
|
||||
|
||||
# Virtual environments
|
||||
venv/
|
||||
.env
|
||||
|
|
|
|||
|
|
@ -51,6 +51,6 @@ try:
|
|||
except ImportError:
|
||||
pass
|
||||
|
||||
__version__ = "0.2.3"
|
||||
__version__ = "0.2.4"
|
||||
__author__ = "NOMYO AI"
|
||||
__license__ = "Apache-2.0"
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
[build-system]
|
||||
requires = ["hatchling>=1.0.0", "wheel"]
|
||||
build-backend = "hatchling.build"
|
||||
requires = ["setuptools>=68", "wheel", "Cython>=3.0"]
|
||||
build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "nomyo"
|
||||
version = "0.2.3"
|
||||
version = "0.2.4"
|
||||
description = "OpenAI-compatible secure chat client with end-to-end encryption for NOMYO Inference Endpoints"
|
||||
authors = [
|
||||
{name = "NOMYO.AI", email = "ichi@nomyo.ai"},
|
||||
|
|
@ -42,12 +42,9 @@ dependencies = [
|
|||
|
||||
[project.urls]
|
||||
Homepage = "https://www.nomyo.ai"
|
||||
Documentation = "https://bitfreedom.net/code/nomyo-ai/nomyo/src/branch/main/doc"
|
||||
Documentation = "https://bitfreedom.net/code/nomyo-ai/nomyo/wiki/NOMYO-Secure-Client-Documentation"
|
||||
Repository = "https://bitfreedom.net/code/nomyo-ai/nomyo"
|
||||
Issues = "https://bitfreedom.net/code/nomyo-ai/nomyo/issues"
|
||||
|
||||
[tool.hatch.build.targets.wheel]
|
||||
packages = ["nomyo"]
|
||||
|
||||
[tool.hatch.build.targets.sdist]
|
||||
exclude = ["test/", "build.sh", "dist/"]
|
||||
[tool.setuptools.packages.find]
|
||||
include = ["nomyo*"]
|
||||
|
|
|
|||
31
setup.py
Normal file
31
setup.py
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
from setuptools import setup
|
||||
from setuptools.command.build_py import build_py as _build_py
|
||||
from Cython.Build import cythonize
|
||||
|
||||
# Modules compiled to .so — exclude their .py source from the wheel
|
||||
COMPILED_MODULES = {"nomyo", "SecureCompletionClient", "SecureMemory"}
|
||||
|
||||
|
||||
class BuildPyNoPy(_build_py):
|
||||
"""Skip copying .py source files for cythonized modules."""
|
||||
|
||||
def find_package_modules(self, package, package_dir):
|
||||
modules = super().find_package_modules(package, package_dir)
|
||||
return [
|
||||
(pkg, mod, path)
|
||||
for pkg, mod, path in modules
|
||||
if not (pkg == "nomyo" and mod in COMPILED_MODULES)
|
||||
]
|
||||
|
||||
|
||||
setup(
|
||||
ext_modules=cythonize(
|
||||
[
|
||||
"nomyo/nomyo.py",
|
||||
"nomyo/SecureCompletionClient.py",
|
||||
"nomyo/SecureMemory.py",
|
||||
],
|
||||
compiler_directives={"language_level": "3"},
|
||||
),
|
||||
cmdclass={"build_py": BuildPyNoPy},
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue