Replace fkirc/skip-duplicate-actions across the org
@rtibbles 已经在做这个了。
开始于 2026年6月12日。
评估
这个 Issue 还没有评估数据。
描述
❌ This issue is not open for contribution. Visit Contributing guidelines to learn about the contributing process and how to find suitable issues.
Overview
fkirc/skip-duplicate-actions is unmaintained, pinned to @master, and runs on Node 20, which GitHub removed from runners on 2026-09-16. Nine org repos use it to skip CI jobs when a PR's changed files don't touch what the job tests, while keeping required status checks green. This issue replaces it everywhere and settles on one gating pattern per case, so skipped required checks never hang as "Expected" and CI doesn't start runners it then skips.
Scope
- Every workflow in the 9 repos that uses
fkirc/skip-duplicate-actions, one sub-issue per repo. - Each workflow keeps its current path list; only the mechanism changes.
- Excluded: fkirc's duplicate-run skipping and run cancellation. Workflows that need cancellation already use
concurrency:.
Guidance
- Detect changes with
dorny/paths-filter, pinned by SHA with a version comment:dorny/paths-filter@ceb8a2b8f2d89434be7ff52d3de7ec3738c5cc9d # v4.0.3. - A
paths_ignorelist maps topredicate-quantifier: everywith negated patterns. - Native path filters:
on.<event>.paths/paths-ignore. - Why a filtered-out required check hangs: Handling skipped but required checks.
- Existing aggregator to copy: kolibri
tox.ymlstage2_required_checks.
Strategy
- Workflow with no required check: move its path list to native
paths:/paths-ignore:on its triggers, and deletepre_job. - Workflow with no path list: delete
pre_joband theneeds/ifthat reference it. - Required check from a single non-matrix job: a
dorny/paths-filterdetect job plus a job-levelif. The check name is unchanged. - Required check from a matrix job or step-level gating: job-level
ifplus one aggregator job (if: always(), fails when any needed job failed or was cancelled). The aggregator becomes the required check. - Each PR body lists the required checks to add to and remove from the ruleset. A maintainer edits the ruleset when merging.
Testing Requirements
- Each migration PR links one run where the gated jobs ran and one where they were skipped with every required check green. A run on the contributor's fork is acceptable where the PR's own diff can't produce a skip.
actionlintpasses on every changed workflow.
Acceptance Criteria
- Org-wide code search for
fkirc/skip-duplicate-actionsreturns no results. - Every ruleset change listed in the sub-issue PRs has been applied.
AI usage
I used Claude Code to survey every workflow using the action and each repo's required checks, and to propose options. I chose the approach, the gating rule and the per-repo split, and reviewed each section before filing.
- 主要语言
- JavaScript
- 星标
- 1
- 派生
- 7
- 平均合并
- 1 天 2 小时
- 30 天内合并 PR
- 3
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
learningequality/.github 的其他 Issue
-
dependencies github_actions
难度 4/5 3-5 天 新手友好度 15/100
learningequality/.github#100 ·
-
Create process for unplanned work and automate PR handling based on linked issue assignment可能重新可做 @akolson 于 179 天前认领,目前没有进行中的 PR。 未关闭
learningequality/.github#67 · 1 条评论 · 已指派 1 人 ·
查看 learningequality/.github 的全部 Issue
相似的 Issue
-
factory-active factory-automatic harness/codex task-bug-reproduction-success task-identify-harness-labels-done task-identify-issue-type-done
难度 2/5 1-3 小时 新手友好度 85/100
维护者通常 1 天内回复
-
ux
难度 1/5 1 小时以内 新手友好度 90/100
rr-djk/rr-djuikoo.com#53 ·
维护者通常 1 天内回复
-
new spec review
难度 2/5 1-3 小时 新手友好度 72/100
w3c/browser-specs#2666 · 1 条评论 ·
维护者通常 3 天内回复
-
难度 2/5 1-3 小时 新手友好度 76/100
thim81/openapi-format#238 ·
-
难度 2/5 1-3 小时 新手友好度 82/100
decentespresso/dye2#13 ·