通过GitHub的Actions实现自动部署
- 可以实现hexo博客的自动部署
- 可以实现Vue项目的自动打包部署
以我的 iblog 项目为例, 全自动部署流程记录如下, 方便后期查看
1. 准备
- iblog_dev 开发仓库
- iblog 部署仓库
2. 生成相关参数
生成个人访问令牌:
- 进入 GitHub,点击右上角的头像,选择 "Settings"(设置)。
- 在左侧导航栏中,选择 "Developer settings"(开发者设置)。
- 在 Developer settings 页面上,选择 "Personal access tokens"(个人访问令牌)。
- 点击 "Generate token"(生成令牌)。
- 提供一个说明,选择需要的权限(在这里,至少选择
repo
权限以允许读写仓库)。 - 点击 "Generate token"。
- 复制生成的个人访问令牌。请记住,令牌只在生成时显示一次,确保保存好。
在 GitHub Actions 中使用个人访问令牌:
在 GitHub 仓库中,将个人访问令牌添加为一个 secret,然后在 GitHub Actions 配置文件中引用这个 secret。
- 进入 GitHub 仓库。
- 在仓库导航栏中,点击仓库的名称。
- 在仓库的上方导航栏中,点击 "Settings"(设置)选项。
- 在左侧导航栏中选择 "Secrets"(密钥)。
- 点击 "New repository secret"(新建仓库密钥)。
- 在 "Name" 中输入
GH_TOKEN_BLOG
,然后在 "Value" 中粘贴之前复制的个人访问令牌。 - 点击 "Add secret"(添加密钥)。
- 在你的 GitHub Actions 配置文件(例如
.github/workflows/build-and-deploy.yml
)中,使用${{ secrets.GH_TOKEN_BLOG }}
引用该个人访问令牌,例如:
3. iblog_dev 开发仓库相关配置
在 iblog_dev 仓库的设置中,转到 "Settings" -> "Secrets",添加两个密钥:
- GH_TOKEN_BLOG: 用于访问 blog 仓库的 Personal Access Token。确保该 Token 具有读写仓库的权限。
- REPO_NAME_BLOG: iblog 仓库的名称。
在你的 iblog_dev 开发仓库中创建一个名为 .github/workflows/build-and-deploy.yml
的文件,并添加以下内容:
name: Build and Deploy
on:
push:
branches:
- master # 你的默认分支
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 14
- name: Install Dependencies
run: npm install
- name: Build
run: npm run build
- name: Deploy to Blog Repository
run: |
git clone https://${{ secrets.GH_TOKEN_BLOG }}@github.com/{{username}}/{{depot}}.git iblog
cd iblog
git config --global user.email "username@gmail.com"
git config --global user.name "username"
rm -rf ./*
cp -r ../dist/* .
git add .
git commit -m "update"
git push
env:
REPO_NAME_BLOG: ${{ secrets.REPO_NAME_BLOG }}
实现了开发仓库iblog_dev有代码push的时候,直接自动打包部署到 iblog 仓库中。