[分享创造] 一个让脚本直接跑在 GitHub Runner 上的 JetBrains IDE 插件

查看 13|回复 0
作者:foyoux   
分享一个我最近做的项目:
https://github.com/foyoux/github-action-runner
这是一个 JetBrains IDE 插件,用于在 GitHub Runner 上直接执行脚本。
起因
做这个东西的起因是我需要经常同步镜像,将 Docker Hub 中的镜像同步到国内镜像仓库。
如果使用自己电脑同步,速度很慢,瓶颈主要在上传。
如果是定期任务或者固定的镜像,大家很容易想到用 GitHub Action 做,我们也是这么做的。
但我的场景是比较零碎的,不是固定任务。
当镜像较小时,就直接用内部服务器做了;但镜像很大的话,会非常慢。
于是我专门建了一个私有仓库,每次要做的事情大概是:
[ol]
  • 修改脚本
  • 提交并推送
  • 去 GitHub Actions 页面手动触发
    [/ol]
    这样下来确实快了不少,但整个流程很繁琐,也谈不上优雅。
    一些改进尝试
    后来我想到,可以通过 Workflow Inputs 传参,把脚本内容 Base64 之后直接传给 Action 执行。
    这样就省去了提交和推送的步骤,灵活性确实提升了不少。
    但操作多了之后,还是觉得不够顺。
    于是我又在想,能不能再优雅一点。
    插件
    于是抽空 Vide Code 了这个插件。
    更新了几个版本之后,自己用下来感觉还比较满意,也挺贴合我的需求。
    除了同步镜像,我们也有临时需要同步模型权重的场景,用这个插件也很方便。
    顺便一提,GitHub Runner 的上传、下载速度可以到 1Gbps ,甚至更高
    每个月还有 2000 分钟免费额度,算下来大概 33 小时多一点。
    插件功能和用法
    简单说下目前支持的功能:
    [ol]

  • 选中内容或者文件后右键,会出现 “Runner for GitHub Actions” 菜单
  • 一个是直接执行
  • 一个是先清理 GitHub Runner 空间再执行
    ( GitHub Runner 磁盘空间大概 17G )

  • 支持 shebang ,比如 #!/usr/bin/env python
    所以不仅限于 shell ,python 、node 这些都 OK
    (当然即使不直接支持,脚本里套一层也能解决)

  • 执行前会有预览确认窗口

  • 执行完成后会弹窗提示
    第二个提示里有两个按钮:
  • 打开 workflow runs 列表
  • 打开当前 job 的输出页面

    [/ol]
    欢迎大家捧场😁:
    https://github.com/foyoux/github-action-runner
    —— 用 AI 排了下版
  • 您需要登录后才可以回帖 登录 | 立即注册

    返回顶部