简体中文
  • github actions workflow
  • CI/CD
  • automated deployment
  • streamline-deployment
  • bring your own UI
  • custom sign-in UI
  • @logto/tunnel

使用 GitHub Actions 工作流自动化定制登录 UI 部署

让我们展示如何在你的 devops 管道中,通过 GitHub Actions 工作流自动化将你的定制登录 UI 部署到 Logto Cloud。

Charles
Charles
Developer

不要在用户认证上浪费数周时间
使用 Logto 更快地发布安全应用。几分钟内集成用户认证,专注于您的核心产品。
立即开始
Product screenshot

背景

Logto 是你更好的客户身份和访问管理 (CIAM) 解决方案选择。最近,我们在 Logto Cloud 上推出了“自定义界面”功能,使开发者能够完全自定义他们的登录界面。

之前的博客文章中,我们还提供了创建自定义登录界面的逐步指南,内容包括:

  • 开发带有代码示例的自定义登录页面
  • 设置 @logto/tunnel CLI 以进行本地调试
  • 构建并压缩你的自定义 UI 资源
  • 上传 zip 包并通过控制台界面部署到 Logto Cloud

然而,作为具有 DevOps 思维的应用开发者,当你对自定义登录页面进行更改时,可能会觉得这个过程繁琐。有办法自动化整个过程吗?

我们听取了你的反馈,兴奋地推出了 deploy CLI 命令@logto/tunnel 中。此命令允许你通过在终端中执行命令或将其集成到 GitHub Actions 工作流中来自动化部署过程,这对于构建 CI/CD 管道特别有用。让我们深入了解一下!

先决条件

在开始设置之前,请确保你具备以下条件:

  1. 拥有 Logto Cloud 账户和订阅计划。
  2. 在你的 Logto 租户中拥有具有管理 API 权限的机器对机器应用程序。
  3. 你的项目源代码应该托管在 GitHub 上。
  4. @logto/tunnel CLI 工具作为 dev 依赖项安装在你的项目中。

步骤 1:创建 GitHub Actions 工作流

在你的 GitHub 仓库中,创建一个新的工作流文件。你可以通过导航到 .github/workflows/ 并创建名为 deploy.yml 的文件来完成此操作。

GitHub Actions 工作流的解释

  • 触发器:工作流在每次推送到 main 分支时触发。
  • 任务:部署任务在最新的 Ubuntu 环境中运行,并将执行以下步骤。
  • 步骤:
    • 检出代码:此步骤检出你的仓库代码。
    • 设置 Node.js:此步骤设置 Node.js 环境。
    • 安装依赖项:此步骤安装你的项目依赖项。
    • 构建:此步骤将你的项目源代码构建为 html 资源。假设输出文件夹在根目录中命名为 dist
    • 部署到 Logto Cloud:此步骤运行 Tunnel CLI 命令,将 ./dist 目录中的 html 资源部署到你的 Logto Cloud 租户。它使用环境变量存储敏感信息。

有关 GitHub Actions 的更多信息,请访问 GitHub Actions 文档

步骤 2:在 GitHub 中配置动作密钥

为确保你的凭证安全,应该将它们存储为 GitHub 仓库中的密钥:

  1. 转到你的 GitHub 仓库。
  2. 点击“设置”。
  3. 导航到“Secrets and variables > Actions”。
  4. 点击新建仓库密钥并添加以下密钥:
  • LOGTO_AUTH:你的 Logto M2M 应用程序凭证,格式为 <m2m-app-id>:<m2m-app-secret>
  • LOGTO_ENDPOINT:你的 Logto Cloud 端点 URI。
  • LOGTO_RESOURCE:你的 Logto 管理 API 资源指示符。可以在“API 资源 -> Logto 管理 API”中找到。如果在你的 Logto Cloud 租户中启用了自定义域名,则为必填项。

步骤 3:测试你的工作流

在设置工作流并配置密钥后,你可以通过将 PR 合并到 master 分支来测试它。GitHub Actions 工作流会自动触发,你的自定义登录 UI 将被部署到 Logto Cloud。

使用 GitHub Actions 成功部署到 Logto Cloud

结论

通过将 @logto/tunnel CLI 命令集成到 GitHub Actions 工作流中,你可以简化将自定义登录 UI 部署到 Logto Cloud 的过程。这一自动化允许你专注于开发,同时确保你的更改在实时环境中持续进行测试。

编码愉快!