Sapperで作ったアプリをGitHub ActionsでビルドしてGitHub Pagesで公開する
概要
Sapperで作ったアプリをGitHub ActionsでビルドしてGitHub Pagesで公開しようとした所、 BaseURLの設定周りで思ったよりハマってしまったので、記事にしておきます。
実現したいこと
- アプリのexportはGitHub Actionsで実行する
- Sapperで作ったアプリをGitHub Pagesで公開する
- 公開先のURLは
https://<username>.github.io/<repository name>/
とする
- 公開先のURLは
前提
- Sapper v0.28.10
- node v14.13.0
手順
アプリを作成
今回は公式ページに書いてあるテンプレートのアプリをデプロイしますので、 まずはテンプレートアプリをnpxでとってきます。
現在はTypeScriptがサポートされているので、TypeScriptを有効化しておきます。
下記コマンドを実行するだけです。
npm install
を実行後、 npm run dev
を実行して、動作確認してみます。
localhost:3000 をブラウザから開くと、ナイスガイが決めポーズをしている画像が表示されるはずです。
※npm install
長いので割愛してます。
ここまでは 公式ページのGetting started にも書いてある内容なので、 問題ないはずです。
BaseURL の変更
公開したいページのURLが
https://<username>.github.io/<repository name>/
となります。
末尾にサブディレクトリの形でリポジトリ名が入っており、今のアプリのままでは画像等が表示されません。
まずはアプリをこのURL形式に対応させます。変更箇所は以下の2箇所です。
Gitのdiffを貼っておきます。各々のリポジトリ名に合わせて読み替えて下さい。
src/server.ts
rollup.config.js
上記を追加した後、再度 npm run dev
を実行すると、 localhost:3000/<repository name>
がアプリのURLになっているはずです。
GitHub Actionsの設定
アプリは用意出来たのでGitHub Actionsを設定します。
.github/workflows/deploy.yml
というファイルを作成して以下の内容を書きます。(sapper-gh-pages-gh-actions
の部分は適宜自分のリポジトリ名に変更して下さい。)
GitHub Actionsの truewebartisans/actions-sapper、 peaceiris/actions-gh-pagesを利用しています。
デプロイ
GitHubへpushしたら、リポジトリのSettingsからGithub PagesのSourceを gh-pages ブランチの /(root)
に設定します。
ここまでの設定が問題なく完了していれば、 https://<username>.github.io/<repository name>/
でアプリが確認出来るはずです。
あとがき
今回GitHub Actionsを初めて使ったんですが、便利ですね。色々と使い道はあるようなので、調べつつもう少し試してみたいと思います。