hermes-agent/.github/workflows
Siddharth Balyan 6bdad1f3b2
ci: add PyPI publish workflow (salvaged from #25901) (#26148)
* ci(pypi): add publish workflow for automated PyPI releases

Triggered by CalVer tag pushes from scripts/release.py (v20* pattern).
Three jobs: build (uv build) → publish (OIDC trusted publishing) → sign
(Sigstore + attach to existing GitHub Release).

- workflow_dispatch as manual escape hatch
- skip-existing for safe re-runs
- Graceful skip when GitHub Release not found (sign job)
- Top-level permissions: contents: read (CodeQL compliant)

Requires one-time setup: PyPI trusted publisher + GitHub pypi environment.

Co-authored-by: dmahan93 <44207705+dmahan93@users.noreply.github.com>

* fix(release): address review findings

- Stage acp_registry/agent.json in version bump commit (was silently left unstaged)
- Add missing return when no previous tags found without --first-release
- Fix get_pr_number return type annotation (str -> str | None)
- Prefer uv build over python -m build (matches CI workflow), with fallback
- Use unit separator (%x1f) in git log format to handle | in author names
- Add explicit encoding='utf-8' to .release_notes.md write

Workflow hardening:
- Gracefully skip signing when GitHub Release not found (env var gate
  instead of exit 1, so PyPI publish still shows green)

* fix(ci): harden PyPI workflow — SHA-pin actions, guard workflow_dispatch, explicit build flags

- Pin all actions to commit SHAs (supply-chain hardening for id-token:write)
- workflow_dispatch now requires confirm_tag input + checks out that tag
- Both uv build paths explicitly pass --sdist --wheel

---------

Co-authored-by: dmahan93 <44207705+dmahan93@users.noreply.github.com>
2026-05-15 13:21:48 +05:30
..
contributor-check.yml security: supply chain hardening — CI pinning, dep pinning, and code fixes (#9801) 2026-04-14 14:23:37 -07:00
deploy-site.yml docs: publish llms.txt and llms-full.txt for agent-friendly ingestion (#18276) 2026-04-30 23:17:14 -07:00
docker-publish.yml ci(docker): split :latest (releases only) from :main (main HEAD) 2026-05-13 10:30:42 -04:00
docs-site-checks.yml docs(website): dedicated page per bundled + optional skill (#14929) 2026-04-23 22:22:11 -07:00
lint.yml ci: skip lint comment on fork PRs 2026-05-10 13:19:41 -07:00
nix-lockfile-fix.yml change(nix): dedupe nix lockfile checking scripts in ci (#18000) 2026-04-30 22:52:30 +05:30
nix.yml change(nix): dedupe nix lockfile checking scripts in ci (#18000) 2026-04-30 22:52:30 +05:30
osv-scanner.yml chore(security): add OSV-Scanner CI + Dependabot for github-actions only (#20037) 2026-05-04 20:58:21 -07:00
skills-index.yml security: supply chain hardening — CI pinning, dep pinning, and code fixes (#9801) 2026-04-14 14:23:37 -07:00
supply-chain-audit.yml ci(security): narrow supply-chain-audit to high-signal patterns only 2026-04-19 16:25:21 -07:00
tests.yml fix(ci): bump e2e job timeout to 15 minutes 2026-05-12 17:10:57 -07:00
upload_to_pypi.yml ci: add PyPI publish workflow (salvaged from #25901) (#26148) 2026-05-15 13:21:48 +05:30
uv-lockfile-check.yml ci: add blocking uv.lock check 2026-05-08 18:47:07 -04:00