三生有幸,四季如春 | 言文

Wercker+Hugo+GitHub Pages 搭建並自動部署博客

2017.12.25

Wercker—Build, deploy, and operate container-native applications at scale.

Oracle 早在 2017 年 4 月 17 日收購了 Wercker,故當時編寫的博文內容僅供參考

新主頁地址:https://app.wercker.com/sessions/new

1. 安裝

其他依賴:

  • git
  • go (可選)
  • govendor (可選)

不同發行版有不同的安裝方式,以 Arch Linux 爲例,其餘可見官方安裝教程

$ sudo pacman -S hugo

2. 配置

2.1 本地配置

建立一個本地倉庫,將 <repo_path> 替換成自定義路徑。

$ hugo new site <repo_path>

將準備好的主題文件添加到 themes 目錄

$ cd $repo_path/themes
$ git clone https://github.com/vimux/mainroad

從主題文件中的 exampleSite 中複製配置文件 config.toml<repo_path>,添加theme = "mainroad",示例如下:

  • config.toml

    baseurl = "/"
    title = "Mainroad"
    languageCode = "en-us"
    paginate = "10" # Number of images per page
    theme = "mainroad"
    disqusShortname = "" # Enable comments by entering your Disqus shortname
    googleAnalytics = "" # Enable Google Analytics by entering your tracking id
    
    [Author]
    name = "John Doe"
    bio = "John Doe's true identity is unknown. Maybe he is a successful blogger or writer. Nobody knows it."
    avatar = "img/avatar.png"
    
    [Params]
    subtitle = "Just another site" # Subtitle of your site
    description = "John Doe's Personal blog about everything" # Description of your site
    opengraph = true
    twitter_cards = false
    readmore = false # Show "Read more" button in list if true
    authorbox = true
    post_navigation = true
    post_meta = ["date", "categories"] # Order of post meta information
    
    [Params.sidebar]
    home = "right"   # Configure layout for home page
    list = "right"   # Configure layout for list pages
    single = "right" # Configure layout for single pages
    # Enable widgets in given order
    widgets = ["search", "recent", "categories", "taglist"]
    
    [Params.widgets]
    recent_num = 5 # Set the number of articles in the "Recent articles" widget
    tags_counter = false # Enable counter for each tag in "Tags" widget (disabled by default)
    

修改完成後在本地運行服務以檢查配置是否生效:

$ hugo server --buildDrafts

2.2 GitHub 配置

首先在 GitHub 註冊帳號並創建兩個空倉庫,*.github.io(GitHub 用戶名替換*)和博客存放倉庫。

image

初始化本地倉庫。

$ cd $repo_path
$ git init
$ git remote add origin <博客存放倉庫URL>
$ git add ./
$ git push -u origin master

在個人設置頁面生成一個用於部署的 TOKEN,選擇適當的權限並將其妥善保存。

GitHub Tokens

2.3 Wercker 配置

註冊並登陸 Wercker,建議直接使用 GitHub 帳號登陸。

wercker 主頁

添加應用並且選擇你之前創建的項目倉庫,其餘爲默認配置。

image

在本地倉庫創建 wercker.yml 配置文件,username 替換成自己的GitHub UsernameTOKEN 會在隨後的設置中以環境變量的形式傳入,請勿直接在配置文件中填寫,隨後提交到 GitHub.

  • wercker.yml

    box: debian
    build:
    steps:
        - arjen/[email protected]
    deploy:
    steps:
        - install-packages:
            packages: git ssh-client
        - lukevivier/[email protected]:
            token: $GITHUB_TOKEN
            domain: username.github.io
            basedir: public
            repo: username/username.github.io
    

點擊已經創建好的應用,如果 build 成功的話會在這裏顯示。默認的 Workflows 只有 build 一項,它會完成生成靜態頁面的工作。

我們需要手動創建一個新的 Pipelines,其 YML Pipeline name 設置爲 deploy

創建成功後設置環境變量,添加你開始生成的 TOKEN

編輯工作流程,添加 deploy 即可,這裏可以指定分支,也可以選擇默認全部分支。

最後在選項設置中打開 Support,允許 wercker 提供編譯和部署。

3. 其他

除了以上基本服務之外還可以配置其他服務,比如 telegram_bot 通知服務 或者郵件通知服務,同樣是在 wercker.yml 文件中配置。

comments powered by Disqus