やりたいこと
GitHubには、認証情報などの秘密の情報をpushしたくない。(個人プロジェクトはPublicだし)
だけど、CircleCIから自動デプロイを行いたい。
具体的には、noboru-i/backlog-to-chatworkを作った時に、CircleCIからデプロイしたくなったけど、ChatworkのAPI keyとか、Backlogのドメインとかをpushしたくなかった。
CircleCIなら、環境変数は簡単に設定できるので、そこから取得、ファイルの置換えをしたい。
作ったもの
何が出来るか
指定されたファイルから、特定の文字列を検出し、環境変数の値と置き換えます。
例えば、環境変数に下記を設定しておき、
- CHATWORK_API_KEY : "999999"
- CHATWORK_ROOM_ID : "1234"
下記のようなファイルがあった場合、
default.json
{
"chatwork": {
"apiKey": "INPUT_YOUR_CHATWORK_API_KEY",
"roomId": "INPUT_YOUR_CHATWORK_ROOM_ID"
}
}
env2file default.json
と実行すると、入力したファイルが下記のように変換されます。
default.json
{
"chatwork": {
"apiKey": "999999",
"roomId": "1234"
}
}