环境变量的替换在 GitHub Actions 中不起作用

问题描述 投票:0回答:2

我有以下步骤

      - 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
bash shell environment-variables github-actions
2个回答
1
投票

环境变量在使用此处文档时被替换。那么不需要使用

envsubst
,只需在使用此处文档时设置变量即可。或者使用
<<'EOF'
来防止更换外壳。


0
投票

而且,您似乎在 git 操作上使用 env (注意下面的 a ),在本例中是复合的。 所以,我想说你需要添加类似的东西

CLIENTE_ID=${{env.CLIENT_ID}} CLIENT_SECRET=${{env.CLIENT_SECRET}} envsubst < mdm.xml.template > mdm.xml
© www.soinside.com 2019 - 2024. All rights reserved.