在脚本中的 gitlab-ci.yml 中设置环境变量
Setting Environment Variable in gitlab-ci.yml in script
请帮助我将下面编写的 GitHub Action 转换为 Gitlab CI 脚本。我是 Gitlab 脚本的新手。
从Github文档中我可以了解到下面写的行是用于设置环境变量的值。但是我在Gitlab中找不到任何设置环境变量的资源。
run: >
DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=monorepo -e 'using Pkg; Pkg.test("GLMakie", coverage=true)'
&& echo "TESTS_SUCCESSFUL=true" >> $GITHUB_ENV
设置环境变量的方式有很多种,要看你想达到什么目的:
- 在同一作业中使用它
- 在其他工作中使用它
在同一作业中使用它
在 Bash 或其他 Shell 中,您可以通过 export
设置环境变量 - 在您的情况下,它看起来像:
job:
script:
- DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=monorepo -e 'using Pkg; Pkg.test("GLMakie", coverage=true)' && export TESTS_SUCCESSFUL=true
- echo $TESTS_SUCCESSFUL #verification that it is set and can be used within the same job
在其他工作中使用它
要将变量移交给另一个作业,您需要定义一个 artifact:report:dotenv
。它是一个可以包含键值对列表的文件,这些键值对将作为环境变量注入到后续作业中。
文件结构如下:
KEY1=VALUE1
KEY2=VALUE2
.gitlab-ci.yml
中的定义看起来像
job:
# ...
artifacts:
reports:
dotenv: <path to file>
在你的情况下,这看起来像
job:
script:
- DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=monorepo -e 'using Pkg; Pkg.test("GLMakie", coverage=true)' && echo "TESTS_SUCCESSFUL=true" >> build.env
artifacts:
reports:
dotenv: build.env
job2:
needs: ["job"]
script:
- echo $TESTS_SUCCESSFUL
有关详细信息,请参阅 https://docs.gitlab.com/ee/ci/variables/#pass-an-environment-variable-to-another-job。
请帮助我将下面编写的 GitHub Action 转换为 Gitlab CI 脚本。我是 Gitlab 脚本的新手。
从Github文档中我可以了解到下面写的行是用于设置环境变量的值。但是我在Gitlab中找不到任何设置环境变量的资源。
run: >
DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=monorepo -e 'using Pkg; Pkg.test("GLMakie", coverage=true)'
&& echo "TESTS_SUCCESSFUL=true" >> $GITHUB_ENV
设置环境变量的方式有很多种,要看你想达到什么目的:
- 在同一作业中使用它
- 在其他工作中使用它
在同一作业中使用它
在 Bash 或其他 Shell 中,您可以通过 export
设置环境变量 - 在您的情况下,它看起来像:
job:
script:
- DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=monorepo -e 'using Pkg; Pkg.test("GLMakie", coverage=true)' && export TESTS_SUCCESSFUL=true
- echo $TESTS_SUCCESSFUL #verification that it is set and can be used within the same job
在其他工作中使用它
要将变量移交给另一个作业,您需要定义一个 artifact:report:dotenv
。它是一个可以包含键值对列表的文件,这些键值对将作为环境变量注入到后续作业中。
文件结构如下:
KEY1=VALUE1
KEY2=VALUE2
.gitlab-ci.yml
中的定义看起来像
job:
# ...
artifacts:
reports:
dotenv: <path to file>
在你的情况下,这看起来像
job:
script:
- DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=monorepo -e 'using Pkg; Pkg.test("GLMakie", coverage=true)' && echo "TESTS_SUCCESSFUL=true" >> build.env
artifacts:
reports:
dotenv: build.env
job2:
needs: ["job"]
script:
- echo $TESTS_SUCCESSFUL
有关详细信息,请参阅 https://docs.gitlab.com/ee/ci/variables/#pass-an-environment-variable-to-another-job。