メインコンテンツへスキップ

Github Actionsでhugoのサイトをロリポップサーバーにデプロイする

·1 分· loading ·
Blog Hugo ロリポップ
さめのこ
書いた人
さめのこ
16歳、高校生。何の変哲も無い変態
目次

hugo製です!!
#

このサイトってかブログはhugoという静的サイトジェネレータで作られています。
テーマはおしゃれ〜なBlowfishです(設定が面倒くさかった)

こいつはhugoってコマンドを叩くだけでいろんなファイルを生成してくれるよ。
Github PagesとかCloudflare Pagesで公開できます、、が!!

私はロリポップにデプロイしている!!速いから!!

Actions使って
#

Actionsを使うことによって手動でサーバーにアップロードしなくてもいい。
あとmainブランチにpushするだけでいいの。楽だよね。

私はActionsをあまり使わないので無駄なことやってるかも。

書いたワークフロー
#

# .github/workflows/deploy.yml
name: lolipop

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repository
        uses: actions/checkout@v2
      
      - name: checkout submodule
        shell: bash
        run: |
          auth_header="$(git config --local --get http.https://github.com/.extraheader)"
          git submodule sync --recursive
          git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
                              
      - name: setup hugo
        uses: peaceiris/actions-hugo@v3
        with:
          hugo-version: latest
          extended: true

      - name: Build
        run: hugo --minify

      - name: Deploy via FTP
        uses: SamKirkland/FTP-Deploy-Action@v4.3.5
        with:
          server: ${{ secrets.FTP_HOST }}
          username: ${{ secrets.FTP_USERNAME }}
          password: ${{ secrets.FTP_PASSWORD }}
          server-dir: ${{ secrets.FTP_REMOTE_ROOT }}
          local-dir: public/

リポジトリチェックアウトして→サブモジュールをチェックアウトして→hugoをセットアップして→ビルドして→ftpでデプロイして

って流れ。

シークレットに関しては以下のように設定してね

  • FTP_HOST : ftp.lolipop.jp
  • FTP_USERNAME : アカウント情報→FTPアカウント
  • FTP_PASSWORD : FTPのパスワード
  • FTP_REMOTE_ROOT : 公開フォルダ(最後に/を付ける)

動作
#

規模にもよるが初期の頃は1分程度です。
設定が安定して更新が落ち着いたら無料枠で収まると思います。

これをやるわけ
#

ブログ用のリポジトリをプライベートに設定しているからですね。
特に重要なファイルを置いているわけではないですけどなんとなく非公開に。
無料プランだとpagesで公開できないのですでに使ってるロリポップにデプロイしてます。

以上
#

終わりだよ。
クソデカ寒暖差で風邪引いたのでじゃっかん文章がフワフワしてる。
みなさんもご自愛ください〜〜!!