Path-1
/home/ab12/public_html/project1/*
/home/ab12/public_html/project2/*
................................
/home/ab12/public_html/projectn/{project-files}
我正在使用gitlab-runner来配置CI和CD。构建的构建方式为:
Path-2
/home/ab12/build/{runner-token}/{commit-id}/{group-name}/project1/{project-files}
/home/ab12/build/{runner-token}/{commit-id}/{group-name}/project1/{project-files}
我希望构建路径采用Path-1样式,而不是path-2样式。
我尝试了什么?
我尝试更改仅更改的
build_path="path1"
变量:/home/ab12/build/{runner-token}/{commit-id}/{group name}/project1/{project-files}
到
/home/ab12/path1/{runner-token}/{commit-id}/{group-name}/project1/{project-files}
由于其虚拟化概念,我也不能使用docker,因为它占用了很多空间,这是不希望的。
#1 楼
从概念上讲,这种方法不是可行的方法。 build目录不是一个部署目录,它是一个临时目录,可以从中进行构建或部署,而在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
文件。评论
你能解释一下使用.gitignore处理的文件的工作原理吗?
–克里希纳(Krishna Chalise)
17年11月24日在5:53
@Wildfire不知道我是否理解这个问题。 .gitignore用于您的本地树,这意味着.gitignore中的项目不会被提交(git commit),因此也不会被推送到git存储库,因此也不会出现在CI_PROJECT_DIR中。
–丹尼·古森(Danny Goossen)
17年11月25日在4:54
我很确定你知道我的问题。我的最后一句话只是我的错觉...谢谢
–克里希纳(Krishna Chalise)
17年11月27日在11:23
评论
据我所知您不能(避免两次构建之间的比赛条件)。但是,如果您确定构建的唯一性,那么在上一节中从path1到path2的符号链接应该不行吗?