Gitlab Runner - 每个构建的新文件夹

问题描述 投票:1回答:2

我正在为我的项目使用Gitlab CI。当我推动开发分支时,它运行测试并更新我的测试环境(远程服务器)上的代码。

但是gitlab运行器已经使用了相同的构建文件夹:builds/a3ac64e9/0/myproject/myproject

但我想每次都创建一个now文件夹:

  • builds/a3ac64e9/1/yproject/myproject
  • builds/a3ac64e9/2/yproject/myproject
  • builds/a3ac64e9/3/yproject/myproject
  • 等等

使用这个,我可以通过更改指向最后一个跑步者目录的符号链接来更新我的网站。

有没有办法以这种方式配置Gitlab Runner?

deployment gitlab gitlab-ci gitlab-ci-runner
2个回答
1
投票

您无法通过Gitlab CI runner配置实现此目的,但您可以创建2个runner,并使用onlytags关键字的组合将它们专门分配给每个分支。

假设你的两个分支被命名为masterdevelop,两个跑者被标记为master_runnerdevelop_runner标签,你的.gitlab-ci.yml可能如下所示:

master_job:
   <<: *your_job
   only:
     - master
   tags:
     - master_runner

develop_job:
   <<: *your_job
   only:
     - develop
   tags:
     - develop_runner

<<: *your_job是你可以分解的实际工作)


1
投票

您可能想要阅读以下答案Changing the build intermediate paths for gitlab-runner

我会在这里重新发布我的答案:

从概念上讲,这种方法不是可行的方法;构建目录不是部署目录,它是一个临时目录,用于构建或部署,而在shell执行器上,这可以修复。

所以你需要的是从该目录使用下面的gitlab-ci.yml脚本部署到正确的部署目录。

stages:
- deploy

variables:
  TARGET_DIR: /home/ab12/public_html/$CI_PROJECT_NAME

deploy:
  stage: deploy
  script:
     mkdir -pv $TARGET_DIR
     rsync -r --delete ./ $TARGET_DIR
  tags:
    - myrunner

这会将你的projectfiles移到/ home / ab12 / public_html /

将您的项目命名为project1 .. projectn,您的所有项目都可以使用相同的.gitlab-ci.yml文件。

© www.soinside.com 2019 - 2024. All rights reserved.