我尝试了很多不同的版本,但从未设置过环境变量。
这些都行不通。在所有情况下,变量 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}
所以尽管这是一些进步,但我仍然想知道如何在作业/运行中设置变量以及如何打印变量的内容而不是它们的名称。
答案 0 :(得分:0)
通过 job.<job_id>.env
和 job.<job_id>.steps[*].env
设置环境变量的语法与 Bash 环境变量语法略有不同。不过,您应该能够访问 env:
声明中的 context 对象。将所有这些放在一起为整个作业设置环境变量:
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。