【问题标题】:Env variables not showing in `printenv`环境变量未显示在`printenv`中
【发布时间】:2023-03-27 10:55:02
【问题描述】:

(添加了 bash 和终端标签,因为我不确定我的问题是否特定于 Github 操作,或者是否是对 env vars 如何更普遍地工作的误解)

我正在处理工作流.yml,并在“sql 脚本中的环境替换”步骤中尝试设置一些环境变量:

on: [push]

env:
  GAME: "FunGame"
  TRAIN_HORIZON: 7

jobs:
  ssql:
    runs-on: ubuntu-latest
    name: Get data
    steps:
      - name: Checkout cum-rev repo
        uses: actions/checkout@v2 # Defaults to current repo - check out current repo
      - name: Checkout ds-ssql-gh-action
        uses: actions/checkout@v2
        with:
          repository: ourorg/ds-ssql-gh-action
          token: ${{ secrets.cumrev_workflow_token }}
          ref: main
          path: './ds-ssql-gh-action'
      - name: Env substitue in sql script
        run: |
            INSTALL_DATE=$(date -d "`date +%Y%m01` -12 month" +%Y-%m-%d)
            echo "Here is install date $INSTALL_DATE"
            IOS_GAME="${{ env.GAME }}_IOS_PROD"
            ANDROID_GAME="${{ env.GAME }}_ANDROID_PROD"
            envsubst < get-data/training-data.sql
            cat get-data/training-data.sql
            printenv

推送此操作后,作业将尝试运行。我在底部printenv,当我看到环境变量时,我看不到任何INSTALL_DATEIOS_GAMEANDROID_GAME

为什么这些 env 变量没有用这些行设置:

        INSTALL_DATE=$(date -d "`date +%Y%m01` -12 month" +%Y-%m-%d)
        echo "Here is install date $INSTALL_DATE"
        IOS_GAME="${{ env.GAME }}_IOS_PROD"
        ANDROID_GAME="${{ env.GAME }}_ANDROID_PROD"

注意行echo "Here is install date $INSTALL_DATE" 确实按预期打印出正确的值。但是当我运行printenv时它没有显示?

【问题讨论】:

  • 您忘记将变量放入环境中。

标签: bash terminal github-actions


【解决方案1】:

你必须导出你想在环境中看到的变量:

export INSTALL_DATE=$(date -d "`date +%Y%m01` -12 month" +%Y-%m-%d)
...

【讨论】:

    猜你喜欢
    • 2021-08-20
    • 2015-01-06
    • 1970-01-01
    • 2018-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-16
    • 1970-01-01
    相关资源
    最近更新 更多