Github ActionsでGhostテーマをデプロイする

Ghost公式のworkflowを用いてGithub Actionsからテーマを自動でデプロイしていきます。

Share
Github ActionsでGhostテーマをデプロイする

このブログを更新していくテンションを上げるためによさげな有料テーマを導入しました。

もともとコードではなく記事を書くことに集中したいがためにフルマネージドのGhostを選択したのですが、運営しているとどうしてもCode Injectionだけでは対応できない部分にも手を加える必要が出てきます。今回の場合だと項目の日本語のローカライズであったり、トップページの著者一覧セクションが不要だったり。

ということでカスタムテーマを作成していくわけですが、GhostはWordPressと違って子テーマ的な機能がありません。これはShopifyなんかも同じで、子テーマ機能は結局親テーマが後方互換を考えなければならなかったりと開発速度を落としてしまったりとか色々問題があるからなんでしょう。というわけで改造テーマはGitで管理していきます。

Gitで管理するならば、リポジトリにプッシュした段階で自動でデプロイまでやってくれると楽ちんです。Ghostは公式でGithub Actionsのガイドを公開しているのでこれに従えば簡単でした。

Official Ghost + GitHub Integration
Set up simple continuous integration of your Ghost theme to deploy directly to your Ghost website with GitHub Actions. Share code snippets with GitHub Gists 👨‍💻

Ghostの管理画面からCustom Integrationを作成してAdmin API keyとAPI URLを入手。

Githubの方でSettings → Secrets and variables → Actionsで、GHOST_ADMIN_API_URLGHOST_ADMIN_API_KEY に値を設定。

リポジトリに公式のワークフローのYAMLを設置してプッシュ。

name: Deploy Theme
on:
  push:
    branches:
      - master
      - main
jobs:
  deploy:
    runs-on: ubuntu-22.04
    steps:
      - uses: actions/checkout@v3
      - name: Deploy Ghost Theme
        uses: TryGhost/action-deploy-theme@v1
        with:
          api-url: ${{ secrets.GHOST_ADMIN_API_URL }}
          api-key: ${{ secrets.GHOST_ADMIN_API_KEY }}

あとはプッシュすると自動でDeployされます。

便利。

References

Cited by

Read more

immutableにノートを堆積する

Cosenseのコミュニティで折登さんのHyperstrataというアイデアが紹介されていた。 Hyperstrata: 堆積するノートによるWebサイト形式 - 春告げ抹茶ホイップHyperstrataというWebサイトの形態を提案します。デジタルガーデンのメンテが続かない人にもおすすめのWebサイト形態です。春告げ抹茶ホイップ デジタルガーデンのように未完成の記事を気軽に書きながら、しかしブログのように記事を一度書いたらメンテナンスコストは小さい、そういうような Web サイトの更新形態はないだろうか? この問題意識にかなり共感する。Cosenseなどのすべてがmutableなページは書き出しがとても楽だが、庭の手入れがおろそかになる。一方でブログは記事として出す以上は一応の完成ラインまで書き上げるものであり、一度書き上げたら以降の手入れはさほど必要がないが、書き始める・書き上げるエネルギーが相当求められる。 ここもCosenseという場所がありつつもブログ的な発信ができるように作ったものだが、やはり書くコストが高く更新が不定期になりがちになってしまっている。(サポートして