sed 无法在带有变量的 github 操作中工作

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

我的有效工作流程文件是:

env:
  TF_BACKEND_BUCKET: ${{ secrets.TF_BACKEND_BUCKET }}
  TF_BACKEND_KEY: ${{ secrets.TF_BACKEND_KEY }}
  TF_FILENAME: ${{ vars.TF_FILENAME }}
  TF_VAR_FILENAME: ${{ vars.TF_VAR_FILENAME }}


jobs:
  prepare_env:
    name: Prepare AWS Environment
    runs-on: ubuntu-latest
    environment:  ${{ inputs.cloud_provider }}
    steps:
      - name: Checkout code
        uses: actions/checkout@v3

      - name: Apply Variables and Secrets
        working-directory: deploy/terraform-aws
        ## Set AK/SK and terraform s3 backend info
        run: |
          echo "current path is: $(pwd)"
          ls -l provision-kafka-aws.tf
          sed -i "s/TF_BACKEND_BUCKET/$TF_BACKEND_BUCKET/g" provision-kafka-aws.tf

我的无效工作流程文件是:

env:
  TF_BACKEND_BUCKET: ${{ secrets.TF_BACKEND_BUCKET }}
  TF_BACKEND_KEY: ${{ secrets.TF_BACKEND_KEY }}
  TF_FILENAME: ${{ vars.TF_FILENAME }}
  TF_VAR_FILENAME: ${{ vars.TF_VAR_FILENAME }}


jobs:
  prepare_env:
    name: Prepare AWS Environment
    runs-on: ubuntu-latest
    environment:  ${{ inputs.cloud_provider }}
    steps:
      - name: Checkout code
        uses: actions/checkout@v3

      - name: Apply Variables and Secrets
        working-directory: deploy/terraform-aws
        ## Set AK/SK and terraform s3 backend info
        run: |
          echo "current path is: $(pwd)"
          ls -l provision-kafka-aws.tf
          sed -i "s/TF_BACKEND_BUCKET/$TF_BACKEND_BUCKET/g" $TF_VAR_FILENAME

错误输出是:

sed: can't read provision-kafka-aws.tf
: No such file or directory

我的问题是:我确信该文件存在并且 ls 正确打印出来。但是github在使用变量时找不到文件。怎么解决这个问题?

github sed github-pages
1个回答
0
投票

使用 GitHub Actions 表达式 语法来引用您的环境变量:

env:
  TF_BACKEND_BUCKET: ${{ secrets.TF_BACKEND_BUCKET }}
  TF_BACKEND_KEY: ${{ secrets.TF_BACKEND_KEY }}
  TF_FILENAME: ${{ vars.TF_FILENAME }}
  TF_VAR_FILENAME: ${{ vars.TF_VAR_FILENAME }}

jobs:
  prepare_env:
    name: Prepare AWS Environment
    runs-on: ubuntu-latest
    environment:  ${{ inputs.cloud_provider }}
    steps:
      - name: Checkout code
        uses: actions/checkout@v3

      - name: Apply Variables and Secrets
        working-directory: deploy/terraform-aws
        ## Set AK/SK and terraform s3 backend info
        run: |
          echo "current path is: $(pwd)"
          ls -l provision-kafka-aws.tf
          sed -i "s/${{ env.TF_BACKEND_BUCKET }}/${{ env.TF_BACKEND_BUCKET }}/g" ${{ env.TF_VAR_FILENAME }}
© www.soinside.com 2019 - 2024. All rights reserved.