Laravel Forge:如何将多个部署密钥添加到一个Github仓库

3

我在Forge账户上有一台服务器,上面有两个站点。一个是生产站点,另一个是暂存网站。例如:

  • domain.com
  • test.domain.com

这两个站点都依赖于同一个Github代码库。当提交到develop分支时,暂存网站应该被部署;而当提交到main分支时,生产站点应该被部署。

我的操作:

我将两个站点的部署钩子添加到Github代码库的secrets中:

  • FORGE_DEPLOYMENT_HOOK_PRODUCTION
  • FORGE_DEPLOYMENT_HOOK_STAGING

然后,我为这两个站点创建了Github action。当任何一个分支推送时,它会发出curl请求到部署钩子。

name: Deploy production

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
      - name: Deploy Site
        run: curl ${{ secrets.FORGE_DEPLOYMENT_HOOK_PRODUCTION }}

我将生产站点(domain.com)的部署密钥添加到仓库的部署密钥中。当我尝试添加测试站点(test.domain.com)的密钥时,出现错误:密钥已被使用。如果我检查密钥,实际上是一个不同的密钥,除了前面的x个字符。因为我无法添加密钥,所以该操作仅适用于生产站点,而不适用于测试站点。在部署测试站点时出现此错误:

ERROR: Repository not found.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

所以我的问题是:我如何添加第二个部署密钥?如果不可能,那么设置Github actions以实现相同目标的最佳方法是什么?我认为这是最简单的方法。
1个回答

1
如果有其他人通过谷歌搜索到这个页面。Laravel Forge支持为每个站点单独设置部署密钥,即使您在同一台服务器上有多个站点。点击进入您的站点后,转到“Meta”选项,并将该部署密钥添加到您的GitHub仓库的“Settings > Deploy Keys”中。

在我的网站的元数据部分,我只看到这些设置:域名、网页目录、PHP版本和标签。 - Baspa
@Baspa,你是将服务器创建为“应用服务器”还是“Web服务器”?我认为使用应用服务器选项可以获得更多的控制权。对我来说,网站的部署密钥显示在PHP版本和标签之间的卡片上。 - S.A

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接