Hugo 自動化部署腳本

jopen 9年前發布 | 9K 次閱讀 Hugo 項目構建
 

之前我寫了一個腳本用來自動部署我的 Hugo 博客,今天閑來無事完善了一下這個腳本,使這個腳本更加通用一些。

腳本路徑: https://github.com/coderzh/coderzh-hugo-blog/blob/master/deploy.py

原理

deploy.py會自動執行 hugo 命令生成靜態站點,然后將生成的文件拷貝到上層的一個目錄里,然后,在那個目錄里將文件 push 到你指定的 Git Repository 里。

使用方法

  1. 將deploy.py放到你的 Hugo 站點目錄。(和 config.yaml 等文件放一起)
  2. 編輯deploy.py文件,修改你要部署到的 Git Repository:

    GIT_REPO = [
      # [別名,   分支名,  Git Repo 路徑]
      ['origin',  'gh-pages', 'git@github.com:coderzh/hugo-blog-deployed.git'],
      ['gitcafe', 'gh-pages', 'git@gitcafe.com:coderzh/coderzh-hugo-blog.git'],
    ]
    # 部署到哪里,相對上一級目錄。比如下面的配置,會部署到 ../gh-pages 目錄里
    DEPLOY_DIR = 'gh-pages'

  3. 如果你的網站需要指定皮膚,需要在 config 文件中指定theme。因為我的腳本在生成靜態文件時并不會指定皮膚。

    theme: "rapid" 
  4. 第一次執行,使用first參數,它會做一些初始化的操作。并使用-t表示只是測試一下,并不會真的 push 。

    python deploy.py first -t
  5. 中間可能需要輸入密碼,如果是自動化部署,可在 Git Repo 里添加一個沒有密碼的 SSH Key 。

  6. 如果一切正常,切換到DEPLOY_DIR目錄,git log看看 commit 記錄是否正常。如果一切也如你所愿。則可以把-t參數去掉重新執行一遍,執行真的 push 操作:

    python deploy.py first
  7. 執行完成后,應該已經將生成的靜態頁面自動 push 到了你指定的GIT_REPO里。

  8. 之后如需再次手工部署,只需要使用manual參數,速度會快很多:

    python deploy.py manual
  9. 如果你想通過webhook來自動部署,使用auto參數,這樣在執行 deploy.py 時,會使用 Git 自動更新你當前的 Hugo 站點目錄 ,然后部署:

    python deploy.py auto 

That’s all, 祝你好運!

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!