ネストされたJSONファイルから環境変数を取得し、YAMLファイルで一致/交換する必要がある特定のCI / CDビルド手順があります。
たとえば、私のJSONファイルでは次のようになります。
{
"development": {
"ENV1": "My Value"
}
}
次に、プレースホルダを使用してYAMLファイルを定義します${development.ENV1}
。
env_variables:
ENV1: ${development.ENV1}
これにより、bashスクリプトが実行されると、次のようにファイルが更新されます。
env_variables:
ENV1: "My Value"
値をエクスポートし、環境envsubst
変数を使用してこれを行う参照を見つけました。Google Community Builderこのように:
for f in $(ls ${files[*]}); do
echo "Pre-processing ${f}..." >&2
cat ${f} | envsubst ${shell_format:+"${shell_format}"} > ${f}.processed
mv ${f}.processed ${f}
done
しかし、入れ子になったJSONを使ってこれと同等のことをする方法がわかりません。これはbashでの最初の「本当の」試みなので、ずっと学んでいます!