Github-Actionsでhugoのデプロイを自動化してみた

 2020-2-10 |  2020-8-1 |  3 min read


はじめに

結構前から GitHub-Actions を使ってみたいなと思っていましたが、題材がなく困ってました。 そこで、「なにか定期的にデプロイしてるやつってあったっけ」と考えたところ

「そういや hugo のデプロイって自動化できるんじゃね?」という考えに行き着き、実際にやってみた感じです。

TL;DR

  • この記事は hugo 用リポジトリと homepage 用リポジトリで分割している場合の説明です
  • GitHub-Actions を利用してデプロイすることは可能
    • hugo 用の action がすでに存在するので、そちらを利用すると良い
  • GitHub-Actions 用の yml ファイルを下に記載しているので、参考になるかも
  • 別リポジトリにデプロイする場合はアクセスキーの準備が必要
  • CD 時に hugo のバージョン差異に注意しないと、デプロイ結果が微妙に異なる可能性あり(v0.60.0 で Markdown にアップデートがあった)

現在の環境整理

とりあえず、どう変わったのかをイメージでざっくりと載せてみました。

移行前

ターミナルで shellScript を走らせて、管理用リポジトリとブログ用リポジトリにあげてました。

実施前のイメージ図

移行後

管理用リポジトリに push するだけで、ブログがデプロイされるようになりました。

  • shellscript 動かす環境じゃない(今は早々ないと思いますけど)
  • とりあえずサクッと作成/編集したい
  • GitHub 上でちょっと修正したい

といったときに git さえ入っていれば実行可能になりました!

実施後のイメージ図

実際の作業

作業の洗い出し

今までデプロイするために使っていたdeploy.shで行っていた作業を洗い出す(洗い出すっていう程量ないけど…)

  1. git でコミット(homepage)
  2. hugo でデプロイ
  3. public 以下を push(AmatsukiUrato.github.io)

yml ファイルへの落とし込む

steps以下の階層にいるname毎で job が切れています。

最後の job に${{ secrets.ACTIONS_DEPLOY_KEY }}とりますが、こちらは GitHub のリポジトリ上で秘密鍵を登録しておくと、key が呼び出せるといったものになります。 GitHub-Actions を走らせているリポジトリとは別のリポジトリにデプロイする際などに必要です。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
name: github pages

on:
  push:
    branches:
      - master

jobs:
  build-deploy:
    runs-on: ubuntu-18.04
    steps:
      - name: Checkout
        uses: actions/[email protected]

      - name: Checkout theme repository
        uses: actions/[email protected]
        with: #Themeを適応させる
          repository: Tazeg/hugo-blog-jeffprod
          path: themes/hugo-blog-jeffprod

      - name: Setup Hugo
        uses: peaceiris/[email protected]
        with:
          hugo-version: 'latest'

      - name: Build
        run: hugo --minify --cleanDestinationDir

      - name: Deploy
        uses: peaceiris/[email protected]
        with:
          deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }} ## 秘密鍵はgithub側で登録しておく
          external_repository: AmatsukiUrato/AmatsukiUrato.github.io
          publish_dir: ./public
          publish_branch: master

さいごに

GitHub-Actions は思ってたより使いやすかったです。でも、一番触ってみたかったビジュアルワークフローはどうやら yml ファイルが導入された際になくなってしまったようです 😭 公式からは、検討するけど今すぐ復活はしないよという方針らしいです。

public リポジトリは無料で利用できるし private も 2000 分/月は無料みたいなので、お金をあんまり気にせずチェックできる点はよかったです 😋 GitHub 専門でいうと、TravisCI がありますが、GitHub-Actionsは private でも無料な点はでかいかもしれないです。後は無料で macOS デプロイできるところですかね?

CD は上手くいくと楽しいので、ぜひやりましょう 😎

参考


このエントリーをはてなブックマークに追加

comments powered by Disqus

Tags

Hugo | 7 AWS | 5 git | 5 Setting | 5 VSCode | 4 ci | 3 css | 3 JavaScript | 3 intellij | 3 webpack | 2 keyboard | 2 kaspersky | 2 Route53 | 2 windows | 2 command | 2 poem | 2 Docker | 2 markdown | 2 Terminal | 2 github-actions | 2 書き方 | 2 積本処理 | 2 技術書典7 | 2 SpringBoot | 2 日本語 | 2 Extention | 2 iCloud | 2 Homebrew | 2 virtualMachine | 1 github-pages | 1 template | 1 firewall | 1 Slow | 1 Marp | 1 gradle | 1 shell | 1 document | 1 yarn | 1 SpringSecurity | 1 security | 1 blame | 1 PowerShell | 1 design | 1 Tab | 1 mac | 1 site | 1 Windows Terminal | 1 Utility | 1 Extension | 1 Eclipse | 1




Archives

2020 (31)
2019 (22)
2017 (1)
2016 (3)