ワンライナーでデプロイ・エイリアス作成・古くなった環境の削除

なるべく短くするためにnow.jsonにはnamealiasを設定します。以下この設定での話です。

{
  "version": 2,
  "name": "foo",
  "alias": "foo",
  "builds": [...]
}

コマンド

そして以下を実行します。

2019年4月更新
now && now alias && now rm -sy <name>

上記は代わりました。2019年4月以降aliasは使わなくて良くなり、now--target productionオプションを付けることでnow.jsonaliasセクションがある場合、それを自動で設定するようになりました。

よって、上記コマンドは以下のように変更になりました。

now --target production && now rm -sy <name>

now

これはデプロイコマンドですね。これが完了するとfoo-xxxxxxx.now.shという URL が発行されます。

now alias

これによりfoo-xxxxxx.now.shという URL が(空いていれば)foo.now.shに紐づけ設定されます。

now rm -sy foo

now rm foofooという名前でデプロイしたものすべての環境を削除しようとします。この時yes/noで「本当に削除しますか?」と聞いてくるので-y(--yes) を付けることでこれに先に答えています。また、-s(--safe)を付けると削除対象からエイリアスと紐付いているものを外すことができます。つまり、

foo-xxxxxx.now.sh -> foo.now.sh
foo-yyyyyy.now.sh
foo-zzzzzz.now.sh

のときに、now rm -sy fooした場合foo-xxxxxx.now.shだけが残りそのエイリアスも残ってくれるはずです。