关于github:Github-Actions-Hugo-自动更新博客

应用 hugo 搭建集体博客,GitHub 治理博客资源,GitHub Actions 主动构建更新博客站点。

后期筹备

  • GitHub
  • Docker
  • Nginx
  • Hugo
  • 一个曾经备案的域名
  • 一台在线的服务器
  • Let’s Encrypt HTTPS 证书

GitHub Actions 主动公布

name: Deploy Blog

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2

    - name: Deploy Blog
      uses: appleboy/ssh-action@master
      with:
        host: ${{secrets.BLOG_ALIYUN_HOST}}
        username: ${{secrets.BLOG_ALIYUN_USERNAME}}
        key: ${{secrets.ID_RSA_HUG_BLOG_ALIYUN}}
        script:  |
          if [ ! -d "kk70-blog-source" ]; then
            git clone https://github.com/kevin70/blog.git kk70-blog-source
          fi
          cd kk70-blog-source
          git pull --rebase
          git submodule update --init --recursive

          docker run --rm -i -v ~/kk70-blog-source:/src klakegg/hugo:0.74.3

          if [ ! -d "/usr/share/nginx/kk70.top" ]; then
            mkdir -p /usr/share/nginx/kk70.top
          else
            rm -rf /usr/share/nginx/kk70.top/*
          fi
          cp -R public/* /usr/share/nginx/kk70.top/

应用 appleboy/ssh-action 连贯近程服务器构建更新 Blog。

在 GitHub 仓库的 Settings > Secrets 中配置敏感参数。

  1. 服务器主机
  2. 服务器登录用户名
  3. SSH 证书私钥

检出源码 shell

if [ ! -d "kk70-blog-source" ]; then
  git clone https://github.com/kevin70/blog.git kk70-blog-source
fi
cd kk70-blog-source
git pull --rebase
git submodule update --init --recursive

应用 docker 构建

docker run --rm -i -v ~/kk70-blog-source:/src klakegg/hugo:0.74.3

将站点部署到 Nginx

if [ ! -d "/usr/share/nginx/kk70.top" ]; then
  mkdir -p /usr/share/nginx/kk70.top
else
  rm -rf /usr/share/nginx/kk70.top/*
fi
cp -R public/* /usr/share/nginx/kk70.top/

主站 https://kk70.top/

代码仓库 https://github.com/kevin70/blog

完结

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理