跳至主要内容
此页面上

CI 和 GitHub Actions

Deno Deploy 的 Git 集成允许部署推送到 GitHub 存储库的代码更改。生产分支上的提交将被部署为生产部署。所有其他分支上的提交将被部署为预览部署。

Git 集成有两种操作模式

  • 自动:Deno Deploy 每次您推送时都会自动从您的存储库源拉取代码和资产,并进行部署。此模式非常快,但不允许构建步骤。这是大多数用户的推荐模式。
  • GitHub Actions:在此模式下,您从 GitHub Actions 工作流程将代码和资产推送到 Deno Deploy。这允许您在部署之前执行构建步骤。

Deno Deploy 将根据您的自定义部署配置选择适当的模式。下面,我们将详细介绍 **自动** 和 **GitHub Actions** 模式下的不同配置。

自动 跳转到标题

如果您的项目不需要任何额外的构建步骤,则系统会选择 **自动** 模式。入口点文件只是 Deno Deploy 将运行的文件。

GitHub Actions 跳转到标题

如果您在 **项目配置** 中的 **安装步骤** 和/或 **构建步骤** 中输入命令,Deno Deploy 将创建一个必要的 GitHub Actions 工作流程文件并将其推送到您的存储库。在这个工作流程文件中,我们利用 deployctl Github action 来部署您的项目。您可以在部署到 Deno Deploy 之前执行您需要的任何操作,例如运行构建命令。

要配置要运行的预处理命令,请单击选择您的 Git 存储库后出现的 **显示高级选项** 按钮。然后根据需要在输入框中输入值。

提示

例如,如果您想为 Fresh 项目启用 提前编译,您将在 **构建步骤** 框中输入 deno task build

另请参阅 Fresh 文档,了解如何将 Fresh 项目部署到 Deno Deploy。

Deno Deploy 生成的并推送到您的存储库的 GitHub Actions 工作流程文件如下所示。

.github/workflows/deploy.yml
name: Deploy
on:
  push:
    branches: main
  pull_request:
    branches: main

jobs:
  deploy:
    name: Deploy
    runs-on: ubuntu-latest

    permissions:
      id-token: write # Needed for auth with Deno Deploy
      contents: read # Needed to clone the repository

    steps:
      - name: Clone repository
        uses: actions/checkout@v3

      - name: Install Deno
        uses: denoland/setup-deno@v2
        with:
          deno-version: v2.x

      - name: Build step
        run: "deno task build"

      - name: Upload to Deno Deploy
        uses: denoland/deployctl@v1
        with:
          project: "<your-project-name>"
          entrypoint: "main.ts"
          root: "."

有关更多详细信息,请参阅 deployctl 自述文件