Netlify

Webサイトのホスティングサービス。

主に静的サイト向けだが、FaaSとしても使える?
各種静的サイトジェネレータによるビルドに対応しており、GitHubなどのソースコードを連携することでサイトへの継続的デプロイを設定することができる。

Getting Started

  1. Sign up
    • GitHub IDで登録できる
  2. リポジトリ連携
    • GitHub, GitLabなどから選べる
    • Netlifyで公開したいリポジトリに対して権限を与えるとよい
  3. ビルド設定 -> デプロイ

参考:

Pricing

https://www.netlify.com/pricing/

項目STARTERPRO
基本料金無料$45/月
メンバー数13
同時ビルド数13
転送量100GB/月400GB/月
ビルド時間300分/月1,000分/月
サイト数500無制限

Configuration

https://docs.netlify.com/configure-builds/common-configurations/

各種ビルドツールを使う場合の設定が並んでいるので、だいたいこの通りにするといい。

Python

https://docs.netlify.com/configure-builds/manage-dependencies/#python

Pythonのバージョン

2020-06-21現在、デフォルトのビルドイメージ(Ubuntu 16)のデフォルトのPythonが2.7になっている。
Python 3を使うには、下のようにruntime.txtを用意する。

echo 3.7 > runtime.txt

リファレンス:

netlify.toml

File-based configuration | Netlify Docs

もっと細やかな設定がしたいときに使えそう。

依存ライブラリの設定

リポジトリにrequirements.txtを用意する。

How-to

GitHub ActionsでNetlifyにデプロイ

NetlifyでビルドできるのにわざわざGitHub Actionsを使うのはなぜだろうと思ったら、ビルド時間の無料枠を節約するためらしい。
それなら別のサービスを使うのと変わらないのではないか、という気もするのだが。

NOTE:

  • Netlifyにリポジトリを連携する前に設定しないと面倒なことになるかもしれない

参考記事より引用:

Netlifyの仕様上Githubのリポジトリと紐付きがある場合プッシュしたタイミングでデプロイを自動で行います。
そのためGithub Actionsでジョブ実行前にデプロイが完了してしまうため紐付きを解除する必要がありますが、Netlifyコミュニティに依頼しない限り紐付きを解除することができない

参考: