Skip to content

chore(ci): migrate to scitex-ai/.github reusable workflows (pilot follow-up) - #355

Merged
ywatanabe1989 merged 1 commit into
developfrom
chore/reusable-workflow-migration
Jul 10, 2026
Merged

chore(ci): migrate to scitex-ai/.github reusable workflows (pilot follow-up)#355
ywatanabe1989 merged 1 commit into
developfrom
chore/reusable-workflow-migration

Conversation

@ywatanabe1989

Copy link
Copy Markdown
Collaborator

What

Pilot org-level reusable-workflow migration (operator-approved 2026-07-10 incident remediation), following the pattern merged in scitex-ai/scitex-stats#69. Replaces job bodies with thin workflow_call stubs into scitex-ai/.github reusable workflows where — and only where — the local job is a clean, verified mechanical match. Triggers/permissions preserved byte-identical on the one file touched.

Converted

  • auto-merge-to-develop.yamluses: scitex-ai/.github/.github/workflows/auto-merge-to-develop.yml@main. Verified the job body (the automerge step script) was byte-identical to the reusable workflow before converting — a clean mechanical extraction, no behavior change. New required-status-check context (if this job is ever added to branch protection): call / automerge.

Left AS-IS — do not cleanly match the current 6-workflow catalog

This repo's actual CI (verified by reading job logic, not filenames) has diverged substantially from the assumptions baked into the reusable-workflow catalog piloted on scitex-stats (self-hosted spartan-cpu runner, uv-based installs, simple job bodies). Forcing a conversion here would silently change behavior or point at an unverified runner, so per the task brief these are left untouched:

  • pytest-matrix-on-ubuntu-py3-11-3-12-3-13.yml — runs on ubuntu-latest (not self-hosted spartan-cpu), with CPU-torch pre-pinning, peer-standalone package installs, a PS-170 umbrella-pin-freshness audit step, and a segfault-retry + JUnit-report pass/fail decoupling scheme (the ecosystem's C-extension stack segfaults non-deterministically at interpreter shutdown/import). None of that exists in the reusable pytest-matrix.yml. Converting would drop safety-critical logic and could target a self-hosted runner label this repo may not have.
  • import-smoke-on-ubuntu-py3-12.ymlubuntu-latest, plain pip/venv, hardcoded import scitex, vs. the reusable workflow's self-hosted/uv/derived-package-name approach.
  • scitex-quality-audit-on-ubuntu-latest.yml — this audits the whole ecosystem (shallow-clones every scitex-* repo and runs scripts/quality/audit_ecosystem.py), not just the calling repo. The reusable quality-audit.yml audits only the calling repo's own pyproject.toml-derived package — different job semantics entirely, not a naming coincidence.
  • rtd-sphinx-build-on-ubuntu-latest.yml — beyond building Sphinx HTML, this job also commits the built bundle back into src/scitex/_sphinx_html/ on develop pushes (feeds production doc serving). The reusable rtd-sphinx-build.yml only builds and exits. Converting would silently drop the commit-back step.
  • cla.yml — has no push trigger and no owner-bypass job (simpler than the reusable cla.yml), and authenticates with a secret named CLA_PERSONAL_ACCESS_TOKEN, while the reusable workflow hardcodes secrets.GH_PERSONAL_ACCESS_TOKEN. Converting risked silently breaking the CLA-signature-branch push for non-allowlisted contributors (the env var would resolve empty). Flagging for a follow-up once the secret naming is reconciled.
  • newb.yml / newb-docs-quality-on-ubuntu-latest.yml — no reusable-workflow equivalent exists yet for this doc-quality-via-LLM job (two near-duplicate files already present in this repo, independent of this migration).
  • pypi-publish-and-github-release-on-tag.yml (the tag-driven release workflow) — untouched per explicit instruction: PyPI OIDC trusted publishing does not support workflow_call (invalid-publisher), and this file's own comments already document why it must stay local + SIF-based.

Branch protection

Checked gh api repos/ywatanabe1989/scitex-python/branches/{develop,main}/protection — both return 404 ("Branch protection has been disabled on this repository"). No required-status-check contexts to update.

Verification

  • python3 -c "import yaml; yaml.safe_load(open(...))" passes on the one edited file.
  • Diff is job-body-only; on:/permissions: blocks are byte-identical to the pre-PR file.

Do not merge

Per task instructions this PR is left for review.

Pilot org-level reusable-workflow migration (operator-approved
2026-07-10 incident remediation), following the pattern merged in
scitex-ai/scitex-stats#69.

Converted (clean mechanical match — job body verified byte-identical
to the reusable workflow before conversion):
- auto-merge-to-develop.yaml -> caller stub for
  scitex-ai/.github/.github/workflows/auto-merge-to-develop.yml@main

Left AS-IS (do not cleanly match the current reusable-workflow catalog
today — converting would silently change behavior or target an
unverified runner; see PR description for detail on each):
- pytest-matrix-on-ubuntu-py3-11-3-12-3-13.yml: runs on ubuntu-latest
  (not self-hosted spartan-cpu) with CPU-torch pre-pin, peer-standalone
  installs, a PS-170 umbrella-pin audit step, and a segfault-retry +
  JUnit-report pass/fail decoupling scheme with none of that present in
  the reusable pytest-matrix.yml.
- import-smoke-on-ubuntu-py3-12.yml: runs on ubuntu-latest with plain
  pip/venv and a hardcoded package name, vs. the reusable workflow's
  self-hosted/uv/derived-package-name approach.
- scitex-quality-audit-on-ubuntu-latest.yml: audits the WHOLE
  ecosystem (clones every scitex-* repo) rather than auditing only the
  calling repo, which is what the reusable quality-audit.yml does —
  not the same job semantically.
- rtd-sphinx-build-on-ubuntu-latest.yml: also commits the built HTML
  bundle back into src/scitex/_sphinx_html/ on develop pushes, a
  repo-specific step with no equivalent in the reusable workflow.
- cla.yml: no `push` trigger / no owner-bypass job (structurally
  simpler than the reusable cla.yml), and uses a differently-named
  secret (CLA_PERSONAL_ACCESS_TOKEN vs. the reusable workflow's
  hardcoded GH_PERSONAL_ACCESS_TOKEN) — converting risked silently
  breaking the CLA-signature push.
- newb.yml / newb-docs-quality-on-ubuntu-latest.yml: no reusable
  workflow exists for this job yet (two near-duplicate files already).
- pypi-publish-and-github-release-on-tag.yml: untouched per explicit
  instruction (PyPI OIDC trusted publishing does not support
  workflow_call).

Branch protection: confirmed via `gh api .../branches/{develop,main}/
protection` that neither branch has protection configured (404 on
both) — nothing to update.
@ywatanabe1989
ywatanabe1989 merged commit fef9420 into develop Jul 10, 2026
7 checks passed
@ywatanabe1989
ywatanabe1989 deleted the chore/reusable-workflow-migration branch July 10, 2026 00:27
@github-actions github-actions Bot locked and limited conversation to collaborators Jul 10, 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