CI 与 GitHub Actions
Deno Deploy 的 Git 集成功能可以部署推送到 GitHub 存储库的代码更改。在生产分支上的提交将被部署为生产部署,而在其他所有分支上的提交将被部署为预览部署。
Git 集成有两种操作模式:
- 选择组织名称和存储库。如果您的存储库或组织没有显示,请确保已安装 Deno Deploy GitHub 应用。
- 选择生产分支。从此分支部署的代码将被部署为生产部署而不是预览部署。
- 选择 自动 或 GitHub Actions 部署模式。
- 自动:Deno Deploy 将在每次推送时自动提取代码和资产并部署。此模式非常快,但不允许构建步骤。这是大多数用户的推荐模式。
- GitHub Actions:在此模式中,您可以通过 GitHub Actions 工作流从 GitHub Actions 部署代码和资产。下面我们将更详细地介绍 自动 和GitHub Actions模式的不同配置。
自动
如果您选择上面的 自动 模式,随后您将需要选择 Github 存储库中的一个文件作为 "入口" 文件。入口文件只是 Deno 将运行的文件。
GitHub Actions
GitHub Actions 模式允许您通过利用 deployctl
Github action
向您的部署流程添加构建步骤:
转到
<project-name>
项目页面,并在 Git 集成 卡下选择您的 Github 存储库。为生产分支选择您的分支,在弹出的窗口中选择 GitHub Actions。
单击 确定。
单击 链接。
这将带您到下一页,在那里您可以看到
deploy.yml
文件的预览,您可以下载该文件并将其添加到您的 Github 项目下的.github/workflows/deploy.yml
。根据您的构建步骤、Deno 项目名称和入口文件适当地修改
deploy.yml
文件:job:
permissions:
id-token: write # 这是允许 GitHub Actions 与 Deno Deploy 进行身份验证所需的
contents: read
steps:
- name: 部署到 Deno Deploy
uses: denoland/deployctl@v1
with:
project: my-project # Deno Deploy 上的项目名称
entrypoint: main.ts # 要部署的入口点默认情况下,将部署整个存储库的内容。可以通过指定
root
选项来更改。- name: 部署到 Deno Deploy
uses: denoland/deployctl@v1
with:
project: my-project
entrypoint: index.js
root: distentrypoint
可以是相对路径、文件名或绝对 URL。如果它是相对路径,它将相对于root
来解析。支持绝对的file:///
和https://
URL。要使用 std/http/file_server.ts 模块部署
./dist
目录,您可以使用以下配置:- name: 部署到 Deno Deploy
uses: denoland/deployctl@v1
with:
project: my-project
entrypoint: https://deno.land/std@0.208.0/http/file_server.ts
root: dist有关更多详细信息,请参阅 deployctl README。