fix(tofu): fix secrets export parser for array JSON format and support multiline values
This commit is contained in:
@@ -67,13 +67,21 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Mask and write all secrets to GITHUB_ENV
|
# Mask and write all secrets to GITHUB_ENV
|
||||||
while IFS= read -r key && IFS= read -r value; do
|
while IFS= read -r -d '' key && IFS= read -r -d '' value; do
|
||||||
echo "::add-mask::$value"
|
echo "::add-mask::$value"
|
||||||
echo "$key=$value" >> $GITHUB_ENV
|
|
||||||
|
# Use multi-line syntax to support keys like SSH keys which have newlines
|
||||||
|
EOF_DELIMITER="EOF_${key}_${RANDOM}"
|
||||||
|
echo "$key<<$EOF_DELIMITER" >> $GITHUB_ENV
|
||||||
|
echo "$value" >> $GITHUB_ENV
|
||||||
|
echo "$EOF_DELIMITER" >> $GITHUB_ENV
|
||||||
|
|
||||||
if [ "$key" = "INFRASTRUCTURE_TOKEN" ]; then
|
if [ "$key" = "INFRASTRUCTURE_TOKEN" ]; then
|
||||||
echo "TF_HTTP_PASSWORD=$value" >> $GITHUB_ENV
|
echo "TF_HTTP_PASSWORD<<$EOF_DELIMITER" >> $GITHUB_ENV
|
||||||
|
echo "$value" >> $GITHUB_ENV
|
||||||
|
echo "$EOF_DELIMITER" >> $GITHUB_ENV
|
||||||
fi
|
fi
|
||||||
done < <(jq -r 'to_entries[] | (.key, .value)' secrets.json)
|
done < <(jq -j 'if type == "array" then .[] | (.key, "\u0000", .value, "\u0000") else to_entries[] | (.key, "\u0000", .value, "\u0000") end' secrets.json)
|
||||||
|
|
||||||
rm -f secrets.json
|
rm -f secrets.json
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user