Deploydz
中文ZH

GitHubmacOS 15 或更高版本 · Apple 芯片或 Intel

合并到 main。 已上线。

Deploydz 在 Mac 菜单栏中运行你的自托管 GitHub Actions 运行器。合并到 main,部署就在你自己的 Mac 上运行,不耗 Actions 分钟数,时钟旁边的云朵会显示结果。

macOS 15 或更高版本 · Apple 芯片或 Intel

feature/footer fix/prices release/2.1 合并 你的 Mac 上线 到 main 零 Actions 分钟 显示在菜单栏
main,由你的 Mac 部署分支和拉取请求

合并

GitHub Actions 负责调度。你的 Mac 用它自己的工具和密钥完成工作。

  1. 你合并到 main。GitHub 把仓库的部署工作流排入队列。
  2. 你的 Mac 接手。工作流运行在 [self-hosted, deploy] 上,也就是 Deploydz 一直保持运行的运行器,并上传网站。
  3. 菜单栏显示结果。Deploydz 每 2 秒读取一次每次部署的状态和日志,上线时会发送通知。
.github/workflows/deploy.yml
on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: [self-hosted, deploy]
    steps:
      - uses: actions/checkout@v4
      # feeds the menu bar
      - run: |
          ~/www/actions-runner/deploy.sh \
            mysite ./deploy.sh

你的 Mac

它现在就是构建服务器,Deploydz 让它一直运转。

一个应用运行所有运行器
登录时 Deploydz 会启动你的运行器,重新启动停下的那个,退出时把它们全部停止。不需要为每个运行器配置 LaunchAgent。
每次部署一目了然
每个网站都会显示上次部署的情况:何时上线、已等待多久,或在哪一行失败。它的子菜单可以在 GitHub 上打开运行记录,或打开部署日志。
应用发布也一样
在你的 Mac 上构建的应用会显示版本和最新发布:正在进行的步骤、“2 小时前已发布”,或失败的那一步。
一键添加运行器
选择一个仓库,以及它是网站还是应用。Deploydz 会下载运行器,用 gh 注册并启动它。
公开仓库也安全
为公开仓库添加运行器后,来自复刻的拉取请求需要等待你的批准,陌生人的复刻就无法在你的 Mac 上运行。
不耗 Actions 分钟数
自托管运行是免费的,发布和下载也是。没有任何内容在 GitHub 的机器上运行,所以不会产生费用。

安装

  1. 下载 DMG,把 Deploydz 拖到“应用程序”。它经过签名和公证。
  2. 打开它。首次启动会打开“登录时启动”,云朵会出现在时钟旁边。
  3. 添加运行器。在“设置”中,+ 可以选择你的一个仓库,以及它是网站还是应用。
  4. 让工作流指向它。网站的 deploy.yml 运行在 [self-hosted, deploy] 上,应用的 release.yml 中的 Mac 作业运行在 [self-hosted, macOS, release] 上。

系统要求

  • macOS 15 或更高版本,Apple 芯片或 Intel
  • 已登录的 GitHub CLI(gh)
  • 你在 GitHub 上的仓库
  • 合并时处于开机状态的 Mac
下载 macOS 版

帮助

会消耗 GitHub Actions 分钟数吗?

不会。自托管运行是免费的。在 GitHub 的账单设置中把 Actions 预算保持为 $0,这样万一有作业落到 GitHub 自己的机器上,它会失败,而不是产生费用。

来自复刻的拉取请求能在我的 Mac 上运行代码吗?

没有你的同意就不能。为公开仓库添加运行器时,Deploydz 会让来自复刻的拉取请求等待你的批准。

菜单中没有“应用”。

Deploydz 通过 gh 向 GitHub 查询发布,所以请用 gh auth status 检查它是否已登录。

某个运行器在“运行器”下显示 ○。

它停止了,Deploydz 会在 10 秒内重新启动它。如果它一直停止,请查看该运行器文件夹中的 _diag/deploydz.log。

退出时运行器会怎样?

它们会随 Deploydz 一起停止,并在它打开时重新启动。菜单中的停止运行器可以暂停所有运行器而不退出。

它如何更新?

检查更新…会下载新版本,并且只有在由同一开发者签名时才会安装。有部署或发布正在进行时它会等待,因为重新启动 Deploydz 会停止运行器。

工作流可以安装或更新 Deploydz 吗?

不可以。重新启动 Deploydz 会停止所有运行器,包括工作流所在的那个。请手动安装,或使用检查更新…。

上线

下载 Deploydz,添加一个运行器,你的下一次合并就会自行部署。