Komondor

为 Swift 和 Xcode 项目提供的 Git Hook 自动化工具。 是 Husky 的 Swift 移植版。

简而言之 (TL:DR)

  1. 添加或修改 Package.swift
  2. 添加此依赖项:.package(url: "https://github.com/shibapm/Komondor.git", from: "1.0.0"),
  3. 运行安装命令:swift run komondor install
  4. 向你的 Package.swift 添加一个配置节

然后你将获得整合和集中的 git-hooks,以便每个人都可以使用相同的工具。

为什么?

如果你关心某件事,你应该自动化它。

像 Komondor 提供的 Git Hooks 为你提供了更多用于项目自动化处理的范围。 Komondor 提供了一种易于理解的方式来查看项目中所有 git 自动化接触点如何协同工作。 这些钩子允许在开发过程中更快地获得反馈,并允许不同的团队成员使用不同的工具,但仍然具有相同的质量标准。

例如,将 SwiftFormat 添加到你的 pre-commit 钩子意味着再也没有人需要在代码审查中讨论格式问题。 完美。 它不会减慢你的 Xcode 构建速度,因为它存在于你的项目之外,如果你想 100% 确保每个人都遵守规范,你可以在 CI 上验证它。

另一个例子,在推送之前运行测试 - 这意味着你不必在 10-15 分钟后,当 CI 告诉你有一个失败的测试时才回来。 这将更多的验证转移到你仍然处于上下文中的地方。

一个例子

来自你正在查看的 这个仓库

#if canImport(PackageConfig)
    import PackageConfig

    let config = PackageConfiguration([
        "komondor": [
            "pre-push": "swift test",
            "pre-commit": [
                "swift test",
                "swift run swiftformat .",
                "swift run swiftlint autocorrect --path Sources/",
                "git add .",
            ],
        ],
    ]).write()
#endif

请参阅更多关于 此处的配置 信息。

开始设置

在 SwiftPM 项目上 在 Xcode 项目上

部署

使用 swift run rocket [patch]