Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
86feb00
Create python-publish.yml
cxykevin Apr 26, 2025
1fc9eec
Update python-publish.yml
cxykevin Apr 26, 2025
9147649
Update python-publish.yml
cxykevin Apr 26, 2025
797c09a
Update python-publish.yml
cxykevin Apr 26, 2025
ce68e79
Update python-publish.yml
cxykevin Apr 26, 2025
29ff056
Update python-publish.yml
cxykevin Apr 26, 2025
f05f9ff
Update python-publish.yml
cxykevin Apr 26, 2025
26db643
Update python-publish.yml
cxykevin Apr 26, 2025
09bf194
Update python-publish.yml
cxykevin Apr 26, 2025
c185c34
Update pyproject.toml
cxykevin Apr 26, 2025
69e7213
Update pyproject.toml
cxykevin Apr 26, 2025
d6d9e1f
Update python-publish.yml
cxykevin Apr 26, 2025
3cb7dc0
Update python-publish.yml
cxykevin Apr 26, 2025
118af02
Update python-publish.yml
cxykevin Apr 26, 2025
b874667
Update python-publish.yml
cxykevin Apr 26, 2025
2472a68
Update python-publish.yml
cxykevin Apr 26, 2025
b86ce23
Update pyproject.toml
cxykevin Apr 26, 2025
7dda95c
Update python-publish.yml
cxykevin Apr 26, 2025
f1b82a6
Update python-publish.yml
cxykevin Apr 26, 2025
b8c63ee
Update python-publish.yml
cxykevin Apr 26, 2025
69827be
Update python-publish.yml
cxykevin Apr 26, 2025
761ee5a
Update python-publish.yml
cxykevin Apr 26, 2025
245327f
Update python-publish.yml
cxykevin Apr 26, 2025
a85c763
Update python-publish.yml
cxykevin Apr 26, 2025
aa7cfe6
Update python-publish.yml
cxykevin Apr 26, 2025
2b6a2a1
Update python-publish.yml
cxykevin Apr 26, 2025
9b942ac
Update python-publish.yml
cxykevin Apr 26, 2025
6804af1
Update python-publish.yml
cxykevin Apr 26, 2025
7a5bfb7
Update python-publish.yml
cxykevin Apr 26, 2025
2250a66
Update python-publish.yml
cxykevin Apr 26, 2025
38a1fa6
Update python-publish.yml
cxykevin Apr 26, 2025
37732b6
更新 python-publish.yml
cxykevin Apr 26, 2025
ca73de4
Update python-publish.yml
cxykevin Apr 26, 2025
7522394
Update python-publish.yml
cxykevin Apr 26, 2025
4d09735
Update python-publish.yml
cxykevin Apr 26, 2025
a7263d2
Update python-publish.yml
cxykevin Apr 26, 2025
fb47778
Update pyproject.toml
cxykevin Apr 26, 2025
a4b6667
Update pyproject.toml
cxykevin Apr 26, 2025
7a1eca5
Update python-publish.yml
cxykevin Apr 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
102 changes: 102 additions & 0 deletions .github/workflows/python-publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
# This workflow will upload a Python Package to PyPI when a release is created
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries

# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.

name: Upload Python Package

on:
release:
types: [published]

permissions:
contents: read

jobs:
release-build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v5
with:
python-version: "3.13.2"

- name: Prepare env
run: |
mkdir ~/.local
export PATH="$PATH:~/.local/bin:/opt/hostedtoolcache/Python/3.13.2/x64/bin"
python -m pip install poetry
poetry self add poetry-dynamic-versioning

- name: Install deps
run: |
export PATH="$PATH:~/.local/bin:/opt/hostedtoolcache/Python/3.13.2/x64/bin"
sudo pip install grpcio==1.72.0rc1
sudo pip install grpcio-tools==1.72.0rc1 # 解决版本问题
sudo pip install grpclib
sudo pip install mypy_protobuf
poetry lock
poetry install --with dev
echo "Install grpcio"
poetry env activate
pip install grpcio==1.72.0rc1
pip install grpcio-tools==1.72.0rc1 # 解决版本问题

echo -e '#!/usr/bin/python\nfrom grpclib.plugin.main import main\nimport sys\nsys.exit(main())' > /opt/hostedtoolcache/Python/3.13.2/x64/bin/protoc-gen-grpclib_python
echo -e '#!/usr/bin/python\nfrom mypy_protobuf.main import main\nimport sys\nsys.exit(main())' > /opt/hostedtoolcache/Python/3.13.2/x64/bin/protoc-gen-mypy
chmod +x /opt/hostedtoolcache/Python/3.13.2/x64/bin/protoc-gen-grpclib_python
chmod +x /opt/hostedtoolcache/Python/3.13.2/x64/bin/protoc-gen-mypy

- name: Build
run: |
export PATH="$PATH:~/.local/bin:/opt/hostedtoolcache/Python/3.13.2/x64/bin"
ls /opt/hostedtoolcache/Python/3.13.2/x64/bin
poetry env activate
make proto_t
poetry build

- name: Upload distributions
uses: actions/upload-artifact@v4
with:
name: release-dists
path: dist/

pypi-publish:
runs-on: ubuntu-latest
needs:
- release-build
permissions:
# IMPORTANT: this permission is mandatory for trusted publishing
id-token: write

# Dedicated environments with protections for publishing are strongly recommended.
# For more information, see: https://docs.github.com/en/actions/deployment/targeting-different-environments/using-environments-for-deployment#deployment-protection-rules
environment:
name: pypi
# OPTIONAL: uncomment and update to include your PyPI project URL in the deployment status:
# url: https://pypi.org/p/YOURPROJECT
#
# ALTERNATIVE: if your GitHub Release name is the PyPI project version string
# ALTERNATIVE: exactly, uncomment the following line instead:
# url: https://pypi.org/project/YOURPROJECT/${{ github.event.release.name }}

steps:
- uses: actions/setup-python@v5
with:
python-version: "3.13.2"

- name: Retrieve release distributions
uses: actions/download-artifact@v4
with:
name: release-dists
path: dist/

- name: Publish release distributions to PyPI
run: |
pip install twine
twine upload -p "${{ secrets.PYPITOKEN }}" ./dist/*
3 changes: 2 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@ requires = ["poetry-core>=2.0.0,<3.0.0"]
build-backend = "poetry.core.masonry.api"

[tool.poetry.group.dev.dependencies]
grpcio-tools = "^1.71.0"
# grpcio = "^1.72.0rc1" # 阴间依赖版本问题
# grpcio-tools = "^1.72.0rc1"
mypy-protobuf = "^3.6.0"

[tool.poetry.scripts]
Expand Down
Loading