[英]How do I dynamically set an environment variable in a github composite action step?
[英]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>.env
和job.<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.