前言
今天讲一下我的博客如何实现自动编译部署的。
我的博客源代码存储在 github 私人仓库上,编译后的文件在我服务器/root/nginx/html/blog/
文件夹下面。假如说我们能通过什么工具能自动编译,并且能自动的把编译后的文件拷贝到服务器指定文件夹下面就能实现这个目的。我通过我的小伙伴ChatGpt 4
的帮忙,写了一个脚本文件,通过Github Actions
实现自动编译部署。
添加三个仓库秘钥
秘钥 Key | 描述 |
---|---|
REMOTE_HOST | 服务器 Ip 地址 |
REMOTE_USER | 用户名 |
REMOTE_KEY | .pem 文件内容(密码) |
脚本文件
在代码根目录创建一个名为.github/workflows
的文件夹。接着,在该文件夹下创建一个名为main.yml
的文件,文件内容如下:
name: CICD
on:
push:
branches: [ main ]
jobs:
build_and_deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.7
- name: Install Bundler
run: gem install bundler
- name: Bundle install
run: bundle install -v 2.4.22
- name: Build
run: bundle exec jekyll build --destination=blog
- name: Copy files to remote server
uses: appleboy/scp-action@master
with:
host: ${{ secrets.REMOTE_HOST }}
username: ${{ secrets.REMOTE_USER }}
key: ${{ secrets.REMOTE_KEY }}
source: "blog/*"
target: "/root/nginx/html/"
-
main.yml 说明
脚本大意解释
:当代码提交的时候,自动从主分支main
拉取代码,安装 Ruby 和相关依赖,执行编译命令,把编译后的文件放到blog
目录,把blog
目录拷贝到服务器/root/nginx/html/
目录下面。如果你感觉我解释的不清楚,可以直接拷贝文件内容到chatGPT
,让chatGPT
给你解释。需要修改的地方
:通过我上面的解释,大家就应该明白自己需要修改那些地方,只需修改拷贝服务器目录。
以后再也不需要自己本地编译和拷贝文件到服务器了,舒服的很呢,哈哈哈,美滋滋。
最后听首歌吧