子供が産まれて、育休を取り始めました

この度、赤ちゃんが生まれました。 めでたい。 そんでもって、10月から半年ほど育休を取って、育児に専念することになりました。 会社・部署の方々など、様々な方のサポートがあってのことです。 とても感謝しています。 休み自体は9月のシルバーウィークから取っていて、すでに絶賛育児中です。 ただね…… この時点ですでに大変なんだが? 細かいポイントを含めれば色々あるけど、しんどかったポイントをあげるなら、こんな感じ。 1. 生活リズムが不規則になる 私の担当範囲は、起きている時間のミルク、おむつ替え、沐浴、暇な時にじっと赤ちゃんの様子を見つめるなど。(あれ、意外とやってないな……) 主に昼から夜、あとは深夜から朝方(1時〜7時)に起きている感じ。 深夜に起きる前と、朝の担当が終わったあとに、それぞれ3〜4時間程度寝ている。 元々深夜に作業するのが苦じゃないタイプなので、深夜も赤ちゃんが寝ている時などは、パソコンでAIと戯れたり、スマホでダラダラとこんな感じの記事を書いたりと好き勝手やっている。 が、最初の方は生活リズムを変えるのがしんどかった。 無理やり寝るためにサプリメントを飲んだり、とにかく横になったりと色々試したが、寝れない時はとにかく寝れない。これがしんどい。 結局、慣れるまではどうにもならなかった。 人間って生活リズムを変えるのが難しい生き物なんだな、と割り切ることにした。 一方、妻の側は、今のところだいたい3時間おきに授乳がある。 母乳だったり、ミルクだったり、その併用だったり。 これがシンプルながらに、妻への負担が半端ない。 妻は授乳のたびに起きているし、赤ちゃんの空腹具合によっては泣き声と共に叩き起こされたりと、不規則な睡眠を強いられている。 授乳の間隔が空くと胸が張るし、乳腺炎になることもあるそう。 発熱などが出ることもあるので、妻の体調も気になる。 うちは基本的に母乳をあげて、足りない分はミルクを作って補う感じで運用している。 育児を始める前は、12時間ずつ分担して、私のターンはミルク、妻のターンは母乳でいいんじゃない?とか考えていた。 が、現実はそんなに割り切れるようにはなっていなかった。 赤ちゃんの都合だけじゃなく、妻の体の事情もある。 あと、沐浴とかも...

Nuxt.jsを短期間でFirebaseにデプロイしてCircleCIで自動デプロイをするところまでを設定するマニュアル

楽をするのは良いことだ

ということで、個人的に好きで使っているNuxt.jsをFirebaseにデプロイし、その後Githubにプッシュするたびに自動的にデプロイされるように設定するまでをこの記事では解説しておきます。

Firebase使ってみた

こちらの記事を参考にさせていただきました。

環境

OSX Catalina
npm version6.14.6
node.js v12.18.4

構築

Firebase

まずFirebaseにログインします。
Googleアカウントが必要となるので持っていない方は取得してください。

スクリーンショット 2020-10-04 11.38.41.png

こちらのページにアクセスしたら使ってみるをクリックし、以下の個人のプロジェクトを管理するページに移ってください。

スクリーンショット 2020-10-04 11.39.32.png

そしてプロジェクトを追加をクリックし、任意のプロジェクト名を設定し、プロジェクトを作成してください。
スクリーンショット 2020-10-04 11.40.23.png
スクリーンショット 2020-10-04 11.40.42.png
スクリーンショット 2020-10-04 11.40.53.png
スクリーンショット 2020-10-04 11.41.02.png

これでプロジェクトを作成できました!

ひとまずターミナルを開き、以下のコマンドを使ってFirebase CLIをインストールしておきましょう。

$ npm install -g firebase-tools

そしてついでにログインをしておきましょう。

$ firebase login

次はNuxtプロジェクトを作成し、Firebaseとつないでデプロイしてみましょう。

Nuxt.js

mkdir firebase
cd firebase
vue init nuxt-community/starter-template sample

こちらでfirebaseディレクトリ内にNuxtのテンプレートが作成されました。
そして次にfirebaseとつなぐ必要があるので以下のコマンドをターミナルで実行してください。
また、ここではHostingを選択してください。

$ firebase init
MacBook-Pro sample % firebase init            

     ######## #### ########  ######## ########     ###     ######  ########
     ##        ##  ##     ## ##       ##     ##  ##   ##  ##       ##
     ######    ##  ########  ######   ########  #########  ######  ######
     ##        ##  ##    ##  ##       ##     ## ##     ##       ## ##
     ##       #### ##     ## ######## ########  ##     ##  ######  ########

You're about to initialize a Firebase project in this directory:

  firebase/sample/

? Which Firebase CLI features do you want to set up for this folder? Press Space
 to select features, then Enter to confirm your choices. Hosting: Configure and 
deploy Firebase Hosting sites

=== Project Setup

First, let's associate this project directory with a Firebase project.
You can create multiple project aliases by running firebase use --add, 
but for now we'll just set up a default project.

? Please select an option: Use an existing project
? Select a default Firebase project for this directory: (先ほど入力したプロジェクト名)
i  Using project (先ほど入力したプロジェクト名)

=== Hosting Setup

Your public directory is the folder (relative to your project directory) that
will contain Hosting assets to be uploaded with firebase deploy. If you
have a build process for your assets, use your build's output directory.

? What do you want to use as your public directory? public
? Configure as a single-page app (rewrite all urls to /index.html)? Yes
✔  Wrote public/index.html

i  Writing configuration info to firebase.json...
i  Writing project information to .firebaserc...

✔  Firebase initialization complete!

これでfirebaseプロジェクトとの接続が完了しました!

次にNuxtプロジェクトをビルドしましょう。

$ npm nuxt generate

これでdist内にビルドしたファイルが出力されました。

次に、sampleプロジェクト内に出力されたfirebase.jsonを以下のように書き換えます。

{
  "hosting": {
    "public": "sample/dist"
  }
}

そして、一つ上の階層のfirebaseディレクトリに移動し、

$ cd ..
$ firebase deploy

このコマンドでFirebaseにデプロイします!!

上手くいくと、以下のようにアドレスが表示されるので、そちらにブラウザからアクセスしてみましょう!

Project Console: https://console.firebase.google.com/project/[あなたのプロジェクト名]/overview
Hosting URL: https://[あなたのプロジェクト名].web.app

スクリーンショット 2020-10-04 11.58.48.png

まず、GitHubにリポジトリを作成し、

スクリーンショット 2020-10-04 18.17.32.png

前回Nuxt.jsで作ったsampleプロジェクトをGitHubにプッシュしておきます。

スクリーンショット 2020-10-04 18.25.05.png

これで一旦GitHubへの設定は終わりです。

では、GitHubとCircleCI、そしてCircleCIとFirebaseを接続していきましょう。

まずはCircleCIの登録をすませてください。
これからGitHubとの連携をするのでGitHubのアカウントでログインすると良いでしょう。
すると連携をするかどうかを聞かれるので連携し、今回のプロジェクト、先ほどGitHubにプッシュしたリポジトリ(以上の例では)を連携してください。

次にCircleCIとFirebaseを連携するためにアクセスするためのトークンをFirebaseに生成して貰うために以下のコマンドをターミナルで実行してください。

$ firebase login:ci

するとコンソール参照用のURLとトークンが表示されるので、CircleCIのPipelineを開き、右上のProject Settingsをクリック、

スクリーンショット 2020-10-05 14.19.08.png

すると環境変数を登録するEnvironment Variablesという欄があるので先ほど手に入れたトークンをFIREBASE_TOKENという名前で以下のように設定してください。

スクリーンショット 2020-10-05 14.21.50.png

そして、プロジェクト直下に.circleci/config.ymlを作成し、以下のように作成してください。

version: 2
jobs:
  deploy_main:
    docker:
      - image: circleci/node:latest
    steps:
      - checkout
      - run:
          name: install firebase-tools
          command: sudo npm install -g firebase-tools
      - run:
          name: install nuxt
          command: npm install nuxt
      - run:
          name: build project
          command: npm run build
      - run:
          name: Deploy Firebase Hosting
          command: firebase deploy --token=$FIREBASE_TOKEN # --project [your-project-id] 仮にこのままプッシュしてfailedになってしまう場合はこのコメントアウトを外してあなたのFirebaseプロジェクトのIDを記入してプッシュしてみてください。

workflows:
  version: 2
  build_and_deploy:
    jobs:
      - deploy_main:
          filters:
            branches:
              only: main

そして試しにGitHubにプッシュしてみると・・・

スクリーンショット 2020-10-05 14.25.36.png

無事成功しました!

ひとまず以上のように設定することでプッシュするたびに自動的にデプロイされるようになりました。

時間があれば自動テストを追加したものも投稿したいですね。

ではこの記事はひとまずここまで。お疲れ様でした。

Comments

Popular posts from this blog

Braveブラウザ(iPhone,iPad)にオフラインでもYouTubeの動画が視聴可能なPlaylist機能が追加されていたので使い方をまとめてみた。

Braveブラウザの同期機能をiPhoneで設定した話。

【OSLog】How to log a Swift project