GitHub Actions 实现 GitHub Pages 和私服自动部署
2023-09-14 19:25:28
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 和私服的自动部署。这可以简化部署流程并提高效率。