迫使詹金斯(Jenkins)退出GIT

比尔·赫特

我有一个作为域用户帐户下的服务在Windows上运行的Jenkins服务器。

当在主服务器上运行时,我可以让Jenkins将我的Git Repo(本地托管的Stash服务器)拉到工作区。

我想在Windows从属服务器上执行作业。我的问题是,当我启动项目时,主服务器首先将任务发送给从服务器,而从服务器尝试执行GIT拉取,但从服务器未安装GIT或SSH。

我想避免在从属服务器上安装SSH和GIT,我希望主服务器先执行拉动,然后再将工作空间推送到从属服务器,然后让从属服务器开始执行其任务。

这可能吗?有可以启用此功能的插件吗?

斯坦·E

因此,我建议您为此目的有2个工作。第一项工作是绑定到主从服务器,它唯一要做的就是从存储库中提取源代码。第二项工作是从第一项工作中获取代码,并执行工作流所需的任何操作(编译,运行某些预处理器,运行测试等)。

这里的问题是如何在两个作业之间传递代码。我想告诉您2个解决方案。显式复制到另一个工作空间是非常不好的做法(工作空间不干净,更改节点会使它失败,更改名称会使它失败等等)。

  1. 此解决方案是最简单的,但是比另一个解决方案花费更多的时间。这里的主要优点是在从属步骤中保留了ENV变量,因此您无需再定义一次。它基于https://wiki.jenkins-ci.org/display/JENKINS/Clone+Workspace+SCM+Plugin在您的第一项工作中,添加一个后构建步骤:在此处输入图片说明然后,在您的从属工作中,在“源代码管理”中选择:在此处输入图片说明完成。

  2. 在大多数情况下,我需要加快速度才能使一切变得更快,(1)方法并不总是适合我。这就是为什么我使用https://wiki.jenkins-ci.org/display/JENKINS/Copy+Artifact+Plugin的原因在我的主要工作中,我执行的最后一个构建步骤(假设我正在使用linux或为Windows安装了bash工具,如果没有,则应在Win上使用zip),一些bash命令:tar -hzcf dist/sourceCode.tar.gz ./* --exclude=dist --exclude=".git"然后在构建后操作中Archive the artifacts,定义我要存档的文件dist/sourceCode.tar.gz在从属作业中,作为构建步骤,我将工件复制到工作区:在此处输入图片说明并将其解压缩:tar zhxf ./dist/sourceCode.tar.gz -C ./

好处是巨大的-我们不受项目名称的约束,我们无需考虑构建在哪里运行等。从我与詹金斯(2)在一起工作的那几年开始,方法是最快的方法,也是“最干净的方法” ”也。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章