
分享一个我最近做的项目: https://github.com/foyoux/github-action-runner
这是一个 JetBrains IDE 插件,用于在 GitHub Runner 上直接执行脚本。
做这个东西的起因是我需要经常同步镜像,将 Docker Hub 中的镜像同步到国内镜像仓库。
如果使用自己电脑同步,速度很慢,瓶颈主要在上传。
如果是定期任务或者固定的镜像,大家很容易想到用 GitHub Action 做,我们也是这么做的。
但我的场景是比较零碎的,不是固定任务。
当镜像较小时,就直接用内部服务器做了;但镜像很大的话,会非常慢。
于是我专门建了一个私有仓库,每次要做的事情大概是:
这样下来确实快了不少,但整个流程很繁琐,也谈不上优雅。
后来我想到,可以通过 Workflow Inputs 传参,把脚本内容 Base64 之后直接传给 Action 执行。
这样就省去了提交和推送的步骤,灵活性确实提升了不少。
但操作多了之后,还是觉得不够顺。
于是我又在想,能不能再优雅一点。
于是抽空 Vide Code 了这个插件。
更新了几个版本之后,自己用下来感觉还比较满意,也挺贴合我的需求。
除了同步镜像,我们也有临时需要同步模型权重的场景,用这个插件也很方便。
顺便一提,GitHub Runner 的上传、下载速度可以到 1Gbps ,甚至更高。 每个月还有 2000 分钟免费额度,算下来大概 33 小时多一点。
简单说下目前支持的功能:
选中内容或者文件后右键,会出现 “Runner for GitHub Actions” 菜单
支持 shebang ,比如 #!/usr/bin/env python 所以不仅限于 shell ,python 、node 这些都 OK (当然即使不直接支持,脚本里套一层也能解决)
执行前会有预览确认窗口
执行完成后会弹窗提示 第二个提示里有两个按钮:
欢迎大家捧场: https://github.com/foyoux/github-action-runner
用 AI 排了下版