基础设施YAML
.github
muhittincamdali 账号下所有仓库共享的社区文件,以及七个可复用的 GitHub Actions workflow。
0星标数最新版本: v1.1.0更新时间: 2026年10月14日
支持平台:GitHub Actions
许可证: MIT
对于没有自己副本的仓库,GitHub 会把这个仓库里的 contributing guide、code of conduct、安全策略、支持指南、issue 表单和 pull request 模板套用到每个仓库上。旁边还有七个可复用 workflow,供其他仓库用 workflow_call 调用:Swift package 的 build 和 test(可选针对每个 Apple 平台的 xcodebuild)、从 DocC 到 GitHub Pages、Flutter、Node.js、用 lychee 做链接检查、README 翻译检查,以及扫描文件和 commit 信息的 hygiene 检查。每个 action 都固定到完整的 commit SHA,每个 job 只申请自己需要的权限;调用方把 workflow 固定到 Dependabot 保持更新的某个带标签的 commit 上。
功能特性
- swift-ci:swift build --build-tests 和 swift test,再加上针对 iOS、macOS、Mac Catalyst、tvOS、watchOS 和 visionOS 的可选 xcodebuild matrix
- docc-pages:用 xcodebuild docbuild 构建 DocC,把多个模块合并到一个站点后部署到 GitHub Pages
- flutter-ci 和 node-ci:针对 Flutter 的 format、analyze 和 test;用 npm 或 pnpm 按 lockfile 安装,并在多个 Node.js 版本上运行已存在的 lint、typecheck、test、build 脚本
- links:用一天的缓存和共享的默认配置做 lychee 链接和 #anchor 检查
- readme-i18n-sync:每个 README.<lang>.md 都标注了它翻译的英文 README 的 git blob;只要它声称翻译的是当前版本,代码块和 URL 就必须一致
- hygiene:对被跟踪文件和正在推送的 commit 中出现的工具名称、无法验证的最高级表述和已停用的口号予以拒绝,并支持按仓库设置白名单
- Action 固定到完整的 commit SHA,按 job 设置权限,persist-credentials: false,以及取消过期 pull request 运行的 concurrency group
- 该仓库用 actionlint(配合 shellcheck)、hygiene 和 links 检查自身
快速开始
yaml
1name: CI2 3on:4 push:5 branches: [main]6 pull_request:7 8permissions: {}9 10jobs:11 swift:12 permissions:13 contents: read14 uses: muhittincamdali/.github/.github/workflows/swift-ci.yml@<sha> # v115 with:16 platforms: '["iOS", "macOS", "tvOS", "watchOS", "visionOS"]'17 18 hygiene:19 permissions:20 contents: read21 uses: muhittincamdali/.github/.github/workflows/hygiene.yml@<sha> # v1安装
Call a workflow from a repository
yaml
1jobs:2 swift:3 permissions:4 contents: read5 uses: muhittincamdali/.github/.github/workflows/swift-ci.yml@<sha> # v16 with:7 platforms: '["iOS", "macOS", "tvOS", "watchOS", "visionOS"]'时间线
仓库开放,包含共享社区文件和六个可复用 workflow(swift-ci、docc-pages、flutter-ci、node-ci、links、hygiene),随后加入 README 翻译检查;标记为 v1 和 v1.0.0
v1.1.0:docc-pages 新增可选的 skip-synthesized-members 输入项,让含有大量 SwiftUI view 的包也能放进 GitHub Pages