chore(ci): migrate to scitex-ai/.github reusable workflows (pilot follow-up) - #355
Merged
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 thinworkflow_callstubs intoscitex-ai/.githubreusable 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.yaml→uses: scitex-ai/.github/.github/workflows/auto-merge-to-develop.yml@main. Verified the job body (theautomergestep 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-cpurunner,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 onubuntu-latest(not self-hostedspartan-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 reusablepytest-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.yml—ubuntu-latest, plainpip/venv, hardcodedimport 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 everyscitex-*repo and runsscripts/quality/audit_ecosystem.py), not just the calling repo. The reusablequality-audit.ymlaudits only the calling repo's ownpyproject.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 intosrc/scitex/_sphinx_html/ondeveloppushes (feeds production doc serving). The reusablertd-sphinx-build.ymlonly builds and exits. Converting would silently drop the commit-back step.cla.yml— has nopushtrigger and no owner-bypass job (simpler than the reusablecla.yml), and authenticates with a secret namedCLA_PERSONAL_ACCESS_TOKEN, while the reusable workflow hardcodessecrets.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-drivenreleaseworkflow) — untouched per explicit instruction: PyPI OIDC trusted publishing does not supportworkflow_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.on:/permissions:blocks are byte-identical to the pre-PR file.Do not merge
Per task instructions this PR is left for review.