教大家如何白嫖一台 Mac 电脑,免费使用

大家好,我是你们的章鱼猫。

哈哈,我不是标题党,今天是真的要教大家白嫖一台 Mac 电脑来使用,只是可以使用而且是远程使用,不是可以白嫖带走的那种。

我们要白嫖的平台是 GitHub,使用的功能是 GitHub Actions,那我们就先介绍一下 Actions 是用来干什么的。

GitHub Actions 是 GitHub 提供的直接与开源项目深度结合的持续集成服务,大概是 2018 年就推出了,当时那时候一直不温不火,我觉得很多人开始用起来应该是今年。以往 GitHub 上常用的持续集成服务是 Travis CI。

那什么是持续集成呢,你可以理解为是一些自动化的操作集合,一般正常是用来在服务代码变更之后,做一些常规的集成测试,确保服务能够稳定的通过测试 Case,而整个流程是自动化运行的。所以一般的持续集成操作有拉取代码、构建环境、编译代码、运行测试等,而在除此之外,不同的服务或者使用方会有自己的定制化的运行需求,这部分是没有办法提供统一的解决方案。

GitHub 的解决方案是把上述的子过程定义为 action,action 之间可以相互的组合,最后变成一个链式执行的 actions。而每一个 action 都是可以自己定义的,也可以分享给其他人使用,这样在保证整体流程执行统一的情况下,提供了更多的扩展性给用户。

一句话总结就是,你可以自己定义你要运行的持续集成的过程,而 GitHub 只是按预先定义的 action 接口逐步的去执行。

image-20210106221538717

现在开始我们就要介绍我们如何白嫖使用 MacOS 了。

目前 GitHub Actions 提供多个操作系统的运行环境,比如 Linux 、MacOS、Windows。所以如果我们的 Actions 选择的运行环境是 MacOS,同时我们定义的操作能够使得 MacOS 的实例能够一直运行,同时能够远程登录,那我们就能在 GitHub 提供的免费额度的情况下白嫖使用了。

目前 GitHub 提供了 2000 分钟/月的免费额度。

image-20210106220420599

以下是整个过程的录制的动态,大家可以详细看一下。

基本的原理就是在 GitHub 运行 MacOS 的时候启动 tmate 服务,tmate 是基于 tmux 的,能够提供远程登录的能力,这样我们可以通过登录上去执行我们的命令,比如去测试一些必须要在 MacOS 执行的测试啊。目前单次上限是可以使用 6 小时。以下是对应的 Actions 配置(一般在仓库的 .github/workflows):

image-20210106221219690

更多项目详情请查看如下链接,快去开启你的白嫖之旅吧。

开源项目地址:https://github.com/fastai/fastmac


更多精彩请扫码关注如下公众号。

Written on January 6, 2021