Skip to content

ci: Publish to TestPyPI and PyPI with Trusted Publishing - #2

Merged
HQJaTu merged 2 commits into
mainfrom
ci/publish
Sep 29, 2026
Merged

HQJaTu merged 2 commits into
mainfrom
ci/publish

Conversation

@HQJaTu

@HQJaTu HQJaTu commented Sep 29, 2026 •

Copy link
Copy Markdown
Collaborator

Adds .github/workflows/publish.yml. No API token is stored: PyPI and TestPyPI trust this workflow (Trusted Publishing).

  • Run by hand (Actions → Publish → Run workflow) → builds and publishes to TestPyPI.
  • Push a tag v<version> → checks that the tag matches pyproject.toml, builds and publishes to PyPI.
  • Both paths build once, run twine check --strict, and refuse a package that contains a .proto.

No deployment environments: they are not available in this repository. Instead, the release tags ruleset lets only repository admins create v* tags, so only they can release to PyPI.

Also makes the two relative README links absolute, so they work on the PyPI project page.

Before the first run, register the pending publishers on test.pypi.org (and later pypi.org): project mfiles-grpc, owner M-Files, repository mfiles-grpc-python, workflow publish.yml, environment left empty.

🤖 Generated with Claude Code

HQJaTu and others added 2 commits September 29, 2026 18:24
Run by hand for TestPyPI; a v<version> tag publishes to PyPI. README links
made absolute so they work on the PyPI project page.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Environments are not available in this repository. Only repository admins
can create v* tags (ruleset "release tags"), which keeps PyPI releases
admin-only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@HQJaTu
HQJaTu merged commit 77ae421 into main Sep 29, 2026
5 checks passed
@HQJaTu
HQJaTu deleted the ci/publish branch September 29, 2026 18:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant