天上天下唯我独尊備忘録雑記メモ覚書
2024.08.26
HUGO+GitHubPagesデプロイ時にDartSassを使う
#HUGO #GitHubActions

ワークフロー内チェックアウト前に以下の処理を記述することで、実行環境でDartSassのコンパイルが実行できるようになります。

- name: Install Dart Sass
  run: sudo snap install dart-sass

最終的には以下のようになります。


config.yml

name: github pages

on:
  push:
    branches:
      - master

  # Actionタブからこのワークフローを手動で実行できる
  workflow_dispatch:

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Install Dart Sass
        run: sudo snap install dart-sass

      - name: Checkout
        uses: actions/checkout@v3
        with:
          submodules: true
          fetch-depth: 0

      - name: Setup Hugo
        uses: peaceiris/actions-hugo@v2
        with:
          hugo-version: 'latest'
          extended: true  # 拡張機能にアクセスするか

      - name: Build
        run: hugo --minify

      - name: Deploy
        uses: peaceiris/actions-gh-pages@v3
        with:
          deploy_key: ${{ secrets.DEPLOY_SECRET }}
          external_repository: OrangeCocoa/OrangeCocoa.github.io
          publish_branch: master

ローカル環境へのScoopのインストールとDartSassのインストール

Macではhomebrewでインストールできますが、今回はWindowsでインストールします。


Windows PowerShellを開き、以下の2つのコマンドを実行します。
Set-ExecutionPolicyでは同意を求めらえれるのでYを入力。

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression

続けて、PowerShellで以下のコマンドを実行します。
こっちはコマンドプロンプトでも実行できますが、実行後どっちにしろ環境変数の適用のために終了させないといけないのでそのまま実行。

scoop install main/sass

これでhugo serverコマンド実行時、transpilerdartsassを指定してToCSSを使っていた場合にDartSassによるコンパイルが走ります。