Pet*_*ore 4 deployment gitlab gitlab-ci gitlab-ci-runner
我在我的项目中使用 Gitlab CI。当我推送开发分支时,它会运行测试并更新我的测试环境(远程服务器)上的代码。
但是 gitlab runner 已经在使用相同的构建文件夹: builds/a3ac64e9/0/myproject/myproject
但我想每次都创建一个 now 文件夹:
builds/a3ac64e9/1/yproject/myproject
builds/a3ac64e9/2/yproject/myproject
builds/a3ac64e9/3/yproject/myproject
使用它,我可以通过更改指向最后一个运行器目录的符号链接来更新我的网站。
有没有办法以这种方式配置 Gitlab Runner?
虽然将构建目录用作部署目录没有意义,但您可以设置自定义构建目录
在文本编辑器中打开config.toml:(在哪里可以找到它的详细信息点击这里)
设置enabled = true
下[runners.custom_build_dir]
(更多信息在这里)
[runners.custom_build_dir]
enabled = true
Run Code Online (Sandbox Code Playgroud)
在您的 .gitlab-ci.yml 文件中,在variables
set下GIT_CLONE_PATH
。它必须以$CI_BUILDS_DIR/
,例如开头$CI_BUILDS_DIR/$CI_JOB_ID/$CI_PROJECT_NAME
,这可能会给你你正在寻找的东西,尽管如果你有多个阶段,它们会有不同的作业 ID。或者,您可以尝试$CI_BUILDS_DIR/$CI_COMMIT_SHA
,这将为每次提交提供一个唯一的文件夹。(更多信息在这里)
variables:
GIT_CLONE_PATH: '$CI_BUILDS_DIR/$CI_JOB_ID/$CI_PROJECT_NAME'
Run Code Online (Sandbox Code Playgroud)
不幸的是,当前使用
GIT_BUILDS_DIR
in存在问题GIT_CLONE_PATH
,如果您使用的是Windows 和 Powershell,那么如果您的所有运行程序都具有相同的构建目录,则您可能必须执行以下操作作为解决方法:GIT_CLONE_PATH: 'C:\GitLab-Runner/builds/$CI_JOB_ID/$CI_PROJECT_NAME'
您可能需要查看可用的变量(预定义变量)以找到最适合您的路径的变量。
仅通过 Gitlab CI 运行程序配置无法实现此目的,但您可以创建 2 个运行程序,并使用 和only
关键字的组合将它们专门分配给每个分支tags
。
假设您的两个分支被命名为master
和develop
,并且两个跑步者已被标记为master_runner
和develop_runner
标签,您的.gitlab-ci.yml
代码可能如下所示:
master_job:
<<: *your_job
only:
- master
tags:
- master_runner
develop_job:
<<: *your_job
only:
- develop
tags:
- develop_runner
Run Code Online (Sandbox Code Playgroud)
(<<: *your_job
是您可以分解的实际工作)
归档时间: |
|
查看次数: |
8002 次 |
最近记录: |