in .github/workflows/action.yml:
name: auto deployment # 名字自取
on:
push:
branches:
- master # 这里的意思是当 master 分支发生push的时候,运行下面的jobs,这里先改为github-actions
jobs:
deploy: # 任务名自取
runs-on: ubuntu-20.04 # 在什么环境运行任务
steps:
- uses: actions/checkout@v2 # 引用actions/checkout这个action,与所在的github仓库同名
with:
submodules: false # Fetch Hugo themes (true OR recursive) 获取submodule主题
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod
- name: Setup Hugo # 步骤名自取
uses: peaceiris/actions-hugo@v2 # hugo官方提供的action,用于在任务环境中获取hugo
with:
hugo-version: '0.89.2' # 获取最新版本的hugo
extended: true
- name: Build
run: hugo --minify # 使用hugo构建静态网页
- name: Deploy Github
uses: peaceiris/actions-gh-pages@v3 # 一个自动发布github pages的action
with:
# github_token: ${{ secrets.GITHUB_TOKEN }} 该项适用于发布到源码相同repo的情况,不能用于发布到其他repo
external_repository: Andyliu92/Andyliu92.github.io # 发布到哪个repo
personal_token: ${{ secrets.ACCESS_TOKEN }} # 发布到其他repo需要提供上面生成的personal access token
publish_dir: ./public # 注意这里指的是要发布哪个文件夹的内容,而不是指发布到目的仓库的什么位置,因为hugo默认生成静态网页到public文件夹,所以这里发布public文件夹里的内容
publish_branch: master # 发布到哪个branch
- name: Upload Website
uses: burnett01/rsync-deployments@5.1
with:
switches: -avzh
path: "./public/*"
remote_path: "/home/ubuntu/www/Blogs/Personal"
remote_host: "101.42.141.88"
remote_port: "22"
remote_user: ubuntu
remote_key: ${{ secrets.COMFLUTER_TOKEN}}
# - name: Upload Website
# uses: zhenyuWang/Upload-File-Action@v1.0.1
# with:
# username: "root"
# server: "110.42.134.69"
# port: "22"
# ssh_private_key: ${{ secrets.WEBSITE_ACCESS_TOKEN}}
# # 要上传文件所在目录
# local_path: "./public/*"
# # 远程服务器目标路径
# target_path: "/www/wwwroot/blog"