Appearance
前言
本着能自动化绝不手动的态度,终于弄懂了GitHub Actions呜呜呜
创建GitHub私有仓库

进入设置页面

创建仓库变量

ssh私钥添加
参考链接easingthemes/ssh-deploy: GitHub Action for deploying code via rsync over ssh. (with NodeJS)
bash
ssh-keygen -m PEM -t rsa -b 4096 #生成私钥
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys #将公钥复制到authorized_keys文件中
cat ~/.ssh/id_rsa #复制私钥初始化Git
在本地前端项目或者Hexo博客根目录配置.git文件夹
bash
git init
git remote add origin git@github.com:1225348331/blog.git
git add .
git commit -m "部署项目"
git push origin master创建workflows
在github上创建workflows后,将其更新到本地

修改workflows
以hexo博客为例,修改.github/workflows/main.yml
yaml
name: 部署hexo博客
on:
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: 1. 检出分支
uses: actions/checkout@v3
- name: 2. 安装 Node
uses: actions/setup-node@v3
with:
node-version: 16
- name: 3. 安装 Hexo
run: |
npm install hexo-cli -g
- name: 4. 缓存 Hexo
uses: actions/cache@v1
id: cache
with:
path: node_modules
key: ${{runner.OS}}-${{hashFiles('package.json')}}
- name: 5. 安装依赖
if: steps.cache.outputs.cache-hit != 'true'
run: |
npm install --save
- name: 6. 生成静态文件
run: |
hexo clean
hexo generate
- name: 7. 推送到服务器私有仓库
uses: easingthemes/ssh-deploy@main
with:
REMOTE_HOST: ${{ secrets.USER_HOST }} #登录IP
REMOTE_USER: ${{ secrets.USER_NAME }} #登录用户名
SSH_PRIVATE_KEY: ${{ secrets.USER_PASS }} #目标服务器git ssh私人密钥
REMOTE_PORT: "8444" #ssh端口
SOURCE: "public/"
TARGET: "/opt/1panel/apps/openresty/openresty/www/sites/myblog/index" #目标服务器路径
# EXCLUDE: "/dist/, /node_modules/" # 排除文件夹最后用git把更改后的代码推送一下,就部署到服务器上啦~
ps:记得推送完后,去Actions上看一下部署进度,根据里面的错误信息去相应解决就可以啦
总结
GitHub Actions给我们提供了一站式的自动化部署体验,最重要的还是免费,让我们无需再去学会多的部署工具,如jenkens了,这种方式是多么的优雅。
除此之外,GitHub Actions可以部署我们的任何项目,其中的重点当然是yml脚本了。