GitHub ActionsでfirebaseプロジェクトをDeployする
GitHub Actionsを触る機会があって触ってみた結果、面白そうだったので趣味で開発しているプロジェクトのDeployをさせてみた。
構成
vue製のwebアプリケーションなので、依存関係をインストール→lint→build→master branchならdeployというフローを組んだ。lintとbuildは並列に実行できそうだったので、並列化した。
master branchにpushされた時だけactionを実行する仕組みは以下のブログを参考にした
ハマった点
ハマった点はargsに環境変数を渡すと展開されなかったところ。GitHub ActionsのargsはDockerのCMDなので、Dockerのドキュメントを見に行くと答えが書いてあった。
["bash", "-c", "yarn firebase deploy --token $FIREBASE_TOKEN"] みたいに書くと動く。なるほど
コード
code:main.workflow
workflow "Build and Lint on push" {
on = "push"
resolves = [
"Lint",
"Deploy"
]
}
action "Install" {
uses = "docker://node:10"
args = "yarn install"
}
action "Build" {
uses = "docker://node:10"
args = "yarn build"
}
action "Lint" {
uses = "docker://node:10"
args = "yarn lint"
}
action "Only master branch" {
uses = "actions/bin/filter@707718ee26483624de00bd146e073d915139a3d8"
args = "branch master"
}
action "Deploy" {
uses = "docker://node:10"
}
図
https://gyazo.com/b3928b330dd54dc792c8c1e2059303e2