[infra] contract-openapi: checkout-fallback на archive-архив — снимает красные статусы всех PR (#59) #63
Reference in New Issue
Block a user
Delete Branch "fix/59-checkout-fallback"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Что
actions/checkout@v4падает на любом коммите в этом репозитории: дефект Gitea git-http (#59) —git-upload-packотдаёт пустой pack,fatal: protocol error: bad pack header, exit 128.Из-за этого статусы
contract-openapi / openapi-contractиcontract-openapi / ts-client-is-currentвсегда красные и любой PR не может получить зелёный combined status (включая PR #60 — CI-пайплайн #17, где все джобыci / *зелёные или штатно skipped).Как исправлено
Оба job'а
contract-openapi.ymlприведены к тому же приёму, что уже работает в.gitea/workflows/ci.yml:actions/checkout@v4→continue-on-error: true,id: checkout.steps.checkout.outcome == 'failure'—checkout fallback (archive tarball):GET /archive/<sha>.tar.gz+ распаковка (endpoint работает, pack — нет).ts-client-is-currentтеперь умеет работать без.git(после archive-fallback): сравнениеsha256sumсгенерированногоui/src/api/generated/schema.d.tsвместоgit diff. При живом checkout остаётся прежнийgit diff --exit-code.Семантика проверок не менялась.
Проверено на живом runner'е
Run #64 (push
fix/59-checkout-fallback, shaca14ae6) — conclusion: success:openapi-contractts-client-is-currentДо фикса те же job'ы падали в первые 40–50 с:
runs/60/jobs/178,runs/60/jobs/179,runs/62/jobs/186,runs/62/jobs/187.Merge-order
Лендить этот PR первым: после него
feat/17-ciдостаточно перетолкнуть (или перезапустить runs), чтобы combined status стал зелёным и PR #60 можно было мержить безforce_merge.Корневой дефект git-http остаётся в #59 (нужен доступ к хосту Gitea 192.168.1.111) — фикс является обходом и сам перестанет срабатывать, когда upload-pack починят.
Refs #59, Refs #17