如何为github操作设置环境变量?



我已经尝试了一堆不同的版本,但环境变量从未设置。

这些不起作用。在所有情况下,变量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。

最新更新