我有以下步骤
- name: create the template for mdm file
shell: bash
run: |
cat > mdm.xml.template <<EOF
<dict>
<key>organization</key>
<string>myorg</string>
<key>auth_client_id</key>
<string>${CLIENT_ID}</string>
<key>auth_client_secret</key>
<string>${CLIENT_SECRET}</string>
</dict>
EOF
- name: create the actual template file
shell: bash
env:
CLIENT_ID: FOO
CLIENT_SECRET: BAR
run: |
envsubst < mdm.xml.template > mdm.xml
mkdir -p /var/lib/cloudflare-warp
sudo mv mdm.xml /var/lib/cloudflare-warp/mdm.xml
- name: cat file
shell: bash
run: |
sudo ls -al /var/lib/cloudflare-warp/
sudo cat /var/lib/cloudflare-warp/mdm.xml
但是当我
cat
文件时:
<dict>
<key>organization</key>
<string>myorg</string>
<key>auth_client_id</key>
<string></string>
<key>auth_client_secret</key>
<string></string>
</dict>
我错过了什么?
一旦执行,相同的命令将在我的机器上按预期在本地工作
export CLIENT_ID=FOO
export CLIENT_SECRET=BAR
环境变量在使用此处文档时被替换。那么不需要使用
envsubst
,只需在使用此处文档时设置变量即可。或者使用 <<'EOF'
来防止更换外壳。
而且,您似乎在 git 操作上使用 env (注意下面的 a ),在本例中是复合的。 所以,我想说你需要添加类似的东西
CLIENTE_ID=${{env.CLIENT_ID}} CLIENT_SECRET=${{env.CLIENT_SECRET}} envsubst < mdm.xml.template > mdm.xml