如何在 Deno 中使用 GitHub Actions 进行自动化部署

介绍

Deno 是一个基于 V8 引擎的 JavaScript/TypeScript 运行时,它的开发团队致力于为开发者提供更好的开发体验和更安全的运行环境。而 GitHub Actions 则是一个强大的自动化工具,可以帮助开发者自动完成构建、测试、部署等任务。

本文将介绍如何使用 GitHub Actions 在 Deno 中实现自动化部署,并带有详细的步骤和示例代码,希望能给开发者带来启发和指导。

前置需求

在开始之前,我们需要确保已经满足以下条件:

  • 了解 GitHub Actions 工作原理和基本概念;
  • 在 GitHub 上创建了一个存储库,并且已经掌握了它的基本结构和用法;
  • 拥有一个服务器或云端环境,可以用于部署 Deno 应用。

步骤

接下来,我们将按照以下步骤,实现自动化部署:

第一步:创建一个 Workflow 文件

在项目存储库中,点击 "Actions",然后点击 "New workflow"。此时会弹出一个编辑器界面,让你可以编写 Workflow 文件。

name: Deno CI/CD

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: Set up Deno
        uses: denolib/setup-deno@v1
        with:
          deno-version: v1.x

      - name: Install Dependencies
        run: deno cache --no-check deps.ts

      - name: Build
        run: deno cache --unstable --lock=lock.json --lock-write src/main.ts

      - name: Deploy
        uses: easingthemes/ssh-deploy@v2.2.6
        env:
          SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
          ARGS: "-rltgoDzvO --delete -e 'ssh -p ${{secrets.SSH_PORT}}' -i /tmp/deploy_rsa"
          SOURCE: "dist"
          REMOTE_HOST: ${{secrets.REMOTE_HOST}}
          REMOTE_USER: ${{secrets.REMOTE_USER}}
          TARGET: ${{secrets.REMOTE_TARGET}}

第二步:配置依赖及打包

在 Workflow 文件中,我们需要配置依赖并打包应用,可以通过以下步骤完成:

  1. 使用 denolib/setup-deno 在 CI/CD 环境中安装 Deno:

    - name: Set up Deno
      uses: denolib/setup-deno@v1
      with:
        deno-version: v1.x
  2. 安装项目依赖:

    - name: Install Dependencies
      run: deno cache --no-check deps.ts
  3. 打包应用:

    - name: Build
      run: deno cache --unstable --lock=lock.json --lock-write src/main.ts

第三步:部署

在 Workflow 文件中,我们需要设置部署任务,可以通过以下步骤完成:

  1. 安装 SSH 组件:

    - name: Deploy
      uses: easingthemes/ssh-deploy@v2.2.6
  2. 配置环境变量:

    env:
      SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
      ARGS: "-rltgoDzvO --delete -e 'ssh -p ${{secrets.SSH_PORT}}' -i /tmp/deploy_rsa"
      SOURCE: "dist"
      REMOTE_HOST: ${{secrets.REMOTE_HOST}}
      REMOTE_USER: ${{secrets.REMOTE_USER}}
      TARGET: ${{secrets.REMOTE_TARGET}}
  3. 编写部署脚本:

    run: ssh-deploy.sh $SOURCE $TARGET $ARGS

第四步:推送更改并查看部署结果

在 Workflow 文件编辑完毕后,我们需要将其推送到 GitHub 存储库中,并观察部署结果,可以通过以下步骤完成:

  1. 将 Workflow 文件保存,并提交更改:

    git add .
    git commit -m "Add Deno CI/CD Workflow"
    git push
  2. 进入存储库页面,选择上方的 "Actions" 选项卡,然后查看 Workflow 是否运行成功:

  3. 访问部署的应用程序,并检查其是否正常工作:

    curl http://<Your_Server_IP>:<Your_Server_Port>

    如果成功返回应用程序的内容,则说明部署成功。

总结

本文介绍了如何在 Deno 中使用 GitHub Actions 进行自动化部署,并提供了详细的步骤和示例代码。希望可以为开发者提供有益的指导和启发。

总之,自动化部署能够大大提高开发效率和减少出错率,让开发者更专注于业务开发本身。因此,如果你正在构建一个 Deno 应用,不妨尝试一下这种自动化部署方式,可能会有惊喜的收获。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6590a13feb4cecbf2d5f210b


纠错反馈