簡體   English   中英

如何為 github 操作設置環境變量?

[英]How do you set an environment variable for a github action?

我嘗試了一堆不同的版本,但從未設置環境變量。

這些都行不通。 在所有情況下,變量IMAGE都不存在。

echo "IMAGE=ghcr.io/${GITHUB_REPOSITORY}:${GITHUB_SHA}" >> $GITHUB_ENV
echo ${IMAGE}

env:
    DEPLOYMENT_NAME: my-deployment
echo "IMAGE=ghcr.io/${GITHUB_REPOSITORY}:${GITHUB_SHA}" >> $GITHUB_ENV
echo $IMAGE 

env:
    DEPLOYMENT_NAME: my-deployment
echo "IMAGE=ghcr.io/${GITHUB_REPOSITORY}:${GITHUB_SHA}" >> $GITHUB_ENV
echo ${{ env.IMAGE }}

env:
    DEPLOYMENT_NAME: my-deployment

編輯

再做一些實驗。 我嘗試像這樣設置環境變量。

env:
  IMAGE1: ghcr.io/${GITHUB_REPOSITORY}:${GITHUB_SHA}
  IMAGE2: "ghcr.io/${GITHUB_REPOSITORY}:${GITHUB_SHA}"

這會設置變量 - 盡管我也希望能夠如上所述在作業中設置它們。 但是,以不同的方式打印它們總是會導致打印變量名稱${GITHUB_REPOSITORY}${GITHUB_SHA}而不是它們的內容。

env:
  DEPLOYMENT_NAME: my-deployment
  IMAGE1: ghcr.io/${GITHUB_REPOSITORY}:${GITHUB_SHA}
  IMAGE2: ghcr.io/${GITHUB_REPOSITORY}:${GITHUB_SHA}
...
echo $IMAGE1
echo $IMAGE2
echo ${IMAGE1}
echo ${IMAGE2}
echo "$IMAGE1"
echo "$IMAGE2"
echo "${IMAGE1}"
echo "${IMAGE2}"

ghcr.io/${GITHUB_REPOSITORY}:${GITHUB_SHA}
ghcr.io/${GITHUB_REPOSITORY}:${GITHUB_SHA}
ghcr.io/${GITHUB_REPOSITORY}:${GITHUB_SHA}
ghcr.io/${GITHUB_REPOSITORY}:${GITHUB_SHA}
ghcr.io/${GITHUB_REPOSITORY}:${GITHUB_SHA}
ghcr.io/${GITHUB_REPOSITORY}:${GITHUB_SHA}
ghcr.io/${GITHUB_REPOSITORY}:${GITHUB_SHA}
ghcr.io/${GITHUB_REPOSITORY}:${GITHUB_SHA}

因此,盡管這是一些進展,但我仍然想知道如何在作業/運行中設置變量以及如何打印變量的內容而不是它們的名稱。

通過job.<job_id>.envjob.<job_id>.steps[*].env設置環境變量的語法與 Bash 環境變量語法略有不同。 您應該能夠訪問env:聲明中的上下文對象。 將所有這些放在一起為整個作業設置環境變量:

jobs:
  job1: # or whatever you want to name your job
    env:
      DEPLOYMENT_NAME: my-deployment
      IMAGE1: ghcr.io/${{ github.repository }}:${{ github.sha }}
      IMAGE2: ghcr.io/${{ github.repository }}:${{ github.sha }}

另請參閱https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idenv

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM