我想将git哈希和其他一些数据渲染到bazel构建中包含的模板中。但是我找不到从ctx.actions.expand_template
访问工作区状态变量的方法。
到目前为止,我将ctx.actions.run_shell
和ctx.info_file
用作输入($INFILE
)。可以在env中提供一组初始变量。
然后,我读取并导出工作空间状态文件中的所有变量,并创建输出。
_TEMPLATE_SH = """
while read line; do
export "${line% *}"="${line#* }"
done <"$INFILE" \
&& cat <<EOF >"$OUTFILE"
<my template with `${STABLE_GITREV}` variables sprinkled around>
EOF
"""
那行得通,但似乎是令人难以置信的错误,所以我正在寻找更清洁的解决方案。