返回

GitHub Actions 实现 GitHub Pages 和私服自动部署

前端

GitHub Actions 是基于 GitHub 的持续集成服务。 它提供一台服务器实例,在此实例中允许通过 actions 来执行一个或多个命令,从而达到像抓取代码、运行测试、登录远程服务器、发布项目等功能。

1. GitHub Actions 简介

GitHub Actions 是一种持续集成(CI)和持续交付(CD)平台,可让您在 GitHub 上自动构建、测试和部署代码。它易于设置和使用,并且可以与 GitHub 的许多其他功能集成,例如 Issues、Pull Requests 和 Projects。

2. GitHub Pages 简介

GitHub Pages 是一种静态站点托管服务,可让您轻松地托管和发布网站。它使用 Jekyll 作为其静态站点生成器,并提供多种功能,例如自定义域、HTTPS 和 GitHub 集成。

3. 私服简介

私服是一种内部部署的软件包管理器,可让您存储和管理您的软件包。它可以用于在您的团队内共享软件包,也可以用于将软件包分发给您的客户。

4. GitHub Actions 实现 GitHub Pages 和私服自动部署

您可以使用 GitHub Actions 来实现 GitHub Pages 和私服的自动部署。为此,您需要创建一个 GitHub Actions 工作流文件,其中指定要执行的步骤。

以下是一个示例工作流文件,用于实现 GitHub Pages 和私服的自动部署:

name: Deploy to GitHub Pages and Private Server

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - name: Build the site
        run: npm run build

      - name: Deploy to GitHub Pages
        uses: JamesIves/github-pages-deploy-action@4.1.5
        with:
          branch: gh-pages
          folder: build

      - name: Deploy to Private Server
        uses: appleboy/scp-action@master
        with:
          host: ${{ secrets.HOST }}
          username: ${{ secrets.USERNAME }}
          password: ${{ secrets.PASSWORD }}
          port: 22
          source: "build/**"
          target: "/var/www/html"

在此工作流文件中,我们首先定义了工作流的名称和触发条件。然后,我们定义了要执行的步骤。

在步骤中,我们首先使用 actions/checkout@v2 操作来签出代码库。然后,我们使用 npm run build 命令来构建站点。接下来,我们使用 JamesIves/github-pages-deploy-action@4.1.5 操作来将构建后的站点部署到 GitHub Pages。最后,我们使用 appleboy/scp-action@master 操作来将构建后的站点部署到私服。

5. 结论

使用 GitHub Actions 可以轻松地实现 GitHub Pages 和私服的自动部署。这可以简化部署流程并提高效率。