Skip to content

ci(release): adopt self-hosted SIF release pipeline (Spartan CPU)#339

Merged
ywatanabe1989 merged 1 commit into
developfrom
ci/self-hosted-release
Jun 22, 2026
Merged

ci(release): adopt self-hosted SIF release pipeline (Spartan CPU)#339
ywatanabe1989 merged 1 commit into
developfrom
ci/self-hosted-release

Conversation

@ywatanabe1989

Copy link
Copy Markdown
Owner

Self-hosted SIF release pipeline (Spartan CPU)

Replaces the GitHub-hosted release workflow with the proven self-hosted SIF pipeline (test->build->publish->release inside the reused scitex-ci ci-cpu.sif via apptainer exec), matching the fleet canary (openalex-local develop).

Why

The bare Spartan compute node has no Python, so actions/setup-python@v5 fails at init, and the Docker-based pypa/gh-action-pypi-publish cannot run (no Docker on the compute nodes). Publish now does manual OIDC trusted publishing inside the SIF: GitHub OIDC JWT -> PyPI mint-token -> twine upload. PyPI trust config is unchanged (only the client changes).

Changes

  • KEEP trust-bound filename pypi-publish-and-github-release-on-tag.yml (the PyPI trusted publisher is bound to the workflow filename).
  • Add the 4 .github/ci/{exec,run,build,publish}-in-sif.sh helpers (executable).
  • Strip the auto sync-main job (develop->main is a deliberate, separate PR — operator policy).
  • runs-on driven by Actions Variable CI_RUNS_ON; SIF + apptainer paths from SCITEX_CI_SIF / SCITEX_CI_APPTAINER (same as pytest-matrix).
  • Per-package adaptation, unique-per-run TMPDIR, matplotlib Agg + warm font cache guarded.
  • fail-loud: a missing SIF/shim/interpreter is a HARD error, never a bare-runner fallback.

Actions Variables CI_RUNS_ON / SCITEX_CI_SIF / SCITEX_CI_APPTAINER set on the repo.

Replace the GitHub-hosted release workflow with the proven self-hosted
SIF pipeline (test->build->publish->release inside the reused scitex-ci
ci-cpu.sif via apptainer exec), matching the fleet canary
(openalex-local). The bare Spartan compute node has no Python, so
actions/setup-python and the Docker-based pypa/gh-action-pypi-publish
cannot run there; publish now does MANUAL OIDC trusted publishing inside
the SIF (GitHub OIDC JWT -> PyPI mint-token -> twine upload). Trust
config on PyPI is unchanged.

- KEEP trust-bound filename pypi-publish-and-github-release-on-tag.yml
  (PyPI trusted publisher is bound to the workflow filename).
- Add the 4 .github/ci/{exec,run,build,publish}-in-sif.sh helpers.
- Strip the auto sync-main job (develop->main is a deliberate PR).
- runs-on from Actions Variable CI_RUNS_ON; SIF + apptainer paths from
  SCITEX_CI_SIF / SCITEX_CI_APPTAINER (same as pytest-matrix).
- --cov=src/scitex; environment url https://pypi.org/p/scitex;
  unique-per-run TMPDIR; matplotlib Agg + warm font cache guarded.
- fail-loud: a missing SIF/shim/interpreter is a HARD error.
@ywatanabe1989 ywatanabe1989 merged commit 00699d9 into develop Jun 22, 2026
7 checks passed
@ywatanabe1989 ywatanabe1989 deleted the ci/self-hosted-release branch June 22, 2026 03:19
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 22, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant