博客自动编译部署

Arthit 于 2023-12-15 发布

前言

今天讲一下我的博客如何实现自动编译部署的。
我的博客源代码存储在 github 私人仓库上,编译后的文件在我服务器/root/nginx/html/blog/文件夹下面。假如说我们能通过什么工具能自动编译,并且能自动的把编译后的文件拷贝到服务器指定文件夹下面就能实现这个目的。我通过我的小伙伴ChatGpt 4的帮忙,写了一个脚本文件,通过Github Actions实现自动编译部署。

添加三个仓库秘钥

秘钥 Key 描述
REMOTE_HOST 服务器 Ip 地址
REMOTE_USER 用户名
REMOTE_KEY .pem 文件内容(密码)

01

脚本文件

在代码根目录创建一个名为.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/"

02

以后再也不需要自己本地编译和拷贝文件到服务器了,舒服的很呢,哈哈哈,美滋滋。

最后听首歌吧