XcodeServerSDK 0.7.1

XcodeServerSDK 0.7.1

测试测试版
Lang语言 SwiftSwift
授权 MIT
发布上次发布Aug 2016
SPM支持SPM

Honza DvorskyEsteban Torres维护。



Xcode Server SDK

satellite badge

使用Xcode Server的API与原生的Swift对象。

最初在Buildasaur项目中引入,现在作为独立项目。这是一个非官方的、由社区维护的项目,并不与Apple相关联。我们还将维护Xcode Server的非官方文档,以方便您使用不同的编程语言进行集成!😉

🎓Xcode Server入门

要了解如何在几分钟内(以及更多)设置Xcode Server,请查看我的教程系列
要查看集成XcodeServerSDK到iOS应用中的简便性,请查看XCSDemo项目,由@cojoj创建。

📶Xcode Server API版本

Xcode Server API 支持?
Xcode 7和更新版本 0.1开始
Xcode 6及更早版本 直到0.0.4

您需要操作系统版本大于等于4。对于Xcode 7,操作系统版本需要大于等于10.10.4。

支持旧版(未经文档记录的)Xcode 6版本的Xcode Server API的最新版本是0.0.4。所有更新的版本只支持公开文档记录的新版Xcode 7 API。

:octocat:源代码

XcodeServerSDK集成到项目中的方法之一是使用CocoaPods。将以下内容添加到您的Podfile中(版本为已发布的最新pod版本:

pod 'XcodeServerSDK'

🔧用法

使用服务器的URL、用户名和密码创建服务器配置对象。

do {
    let config = XcodeServerConfig(host: "https://127.0.0.1", user: "IRuleBots", password: "superSecr3t")
} catch ConfigurationErrors.NoHostProvided {
    fatalError("You haven't provided any host")
} catch ConfigurationErrors.InvalidHostProvided(let host){
    fatalError("You've provided invalid host: \(host)")
} catch ConfigurationErrors.InvalidSchemeProvided(let scheme) {
    fatalError("You've provided invalid scheme: \(scheme)")
} catch {
    fatalError("Error, not related to XcodeServerConfig; \(error)")
}

实例化XcodeServer

let server = XcodeServerFactory.server(config: config)

尽情使用!

server.getBots { bots, error in
    guard error == nil else {
        Log.error("Oh no! \(error.description)")
        return
    }

    // go crazy with bots
    if let firstBot = bots?.first {
        // use the first bot...
    }
}

📶Swift版本

与Swift 1.2兼容的最新版本是0.0.4,因此如果您的目标是Swift 1.2,请在Podfile中放入这个确切版本。所有更新的版本都将针对Swift 2,因为我们所有人都是这样前瞻性的。

🎪在Playground中进行练习

我们提供了一个沙盒,您可以在其中轻松地与XcodeServerSDK互动并测试其功能,而无需创建新的应用程序。沙盒目标设置为用于OS X(因此不要在内部使用UIKit)。

🚀功能

苹果公司终于发布了Xcode Server的官方文档。它们与WWDC上所展示的内容略有不同(第69页幻灯片)。以下是文档中描述的功能表格,按类别划分。最后类别,非官方,是在开发XcodesServerSDK时反向工程的功能集合,所以您在文档中找不到它们,但它们肯定在代码中!😃

类别 描述 XcodeServerSDK支持
机器人
创建新的机器人
检索机器人列表
检索单个机器人
更新单个机器人
删除单个机器人
复制现有机器人
集成
开始指定机器人的集成
检索单个集成
删除集成
取消正在执行的集成
检索对指定机器人的所有集成的过滤、选择和计算的选项 部分
检索对所有集成的过滤、选择和计算的选项 部分
检索集成的测试 部分
检索给定集成和设备标识符的测试信息列表 部分
检索给定集成和设备标识符的问题信息列表
检索给定集成的文件列表
资产
检索给定相对路径的资产
代码覆盖率
检索给定集成的代码覆盖率信息
非官方
检查用户是否可以创建机器人
列出服务器上的托管仓库
创建新的托管仓库
获取支持的平台
从蓝图获取SCM分支
验证用户可以管理服务器

🌇支持的平台

目前XcodeServerSDK支持以下平台

平台 最低版本 CocoaPods
OS X 10.10
iOS 8.0
watchOS 2.0
tvOS 9.0

🎉使用XcodeServerSDK的项目

  • Buildasaur - 将Xcode Server与GitHub拉取请求连接。
  • (也使用XcodeServerSDK吗?发送一个PR并在此处添加您的项目链接!)

想要创建自己的但需要一些灵感?观看2015年WWDC的此会议上的Xcode Server!使用硬件按钮启动集成?为什么不可以!天空才是极限。

✌️授权

MIT

🚢构建与测试

我们使用CocoaPods进行依赖关系管理。当您克隆仓库时,您需要运行pod install来下载必要的依赖项。

💙行为准则

请注意,此项目以贡献者行为准则发布。通过参与此项目,您同意遵守其条款。

✏️贡献

创建一个问题或(最好是)发送一个拉取请求。您只是想要参与并帮忙吗?查看标记为up-for-grabs的问题。这些就是等待像您这样美好灵魂的人来构建/修复的。我们确实没有足够的带宽,任何帮助都受欢迎 :)(如果您发送一个PR,您将成为版本贡献者列表之一!)🎆)

💬取得联系

对于类似一般问题/想法,请提交一个buildasaurs的相关issue,这样任何人都可以在未来看到它们并与之联系起来。这对这种开源项目来说非常重要!如果你的问题需要深入讨论,或者你有一个很好的想法并且在提交issue之前真的很想与他人分享,你可以加入官方的buildasaurs Slack团队!(这样做的话,请向Twitter上的@czechboy0发送ping,并准备好你的电子邮件地址📧)

🎅起源故事

这段代码是从Buildasaur中提取出来的,带来了GitHub拉取请求与Xcode机器人的集成。

👽作者

Honza Dvorsky honzadvorsky.com @czechboy0