Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Jenkins CI自动修改源代码_Jenkins_Scripting_Automation_Continuous Integration - Fatal编程技术网

使用Jenkins CI自动修改源代码

使用Jenkins CI自动修改源代码,jenkins,scripting,automation,continuous-integration,Jenkins,Scripting,Automation,Continuous Integration,我知道可以让Jenkins运行脚本,但我不确定这些脚本的可能性有多大 假设我有一堆git项目。我可以编写一个bash脚本,在本地自动执行一些步骤,如提取源代码、修改源代码、构建源代码并将其部署到测试服务器 我想和詹金斯实现同样的目标。通过Jenkins可以克隆存储库并构建二进制文件。是否也可以编写Jenkins脚本在生成源文件之前修改其内容?对于每个作业,您可以定义预生成步骤和后生成步骤。 一个步骤可以是一个脚本,您可以用bash做的所有事情都可以用Jenkins完成。极限是你的想象力 A我有一

我知道可以让Jenkins运行脚本,但我不确定这些脚本的可能性有多大

假设我有一堆git项目。我可以编写一个bash脚本,在本地自动执行一些步骤,如提取源代码、修改源代码、构建源代码并将其部署到测试服务器


我想和詹金斯实现同样的目标。通过Jenkins可以克隆存储库并构建二进制文件。是否也可以编写Jenkins脚本在生成源文件之前修改其内容?

对于每个作业,您可以定义预生成步骤和后生成步骤。 一个步骤可以是一个脚本,您可以用bash做的所有事情都可以用Jenkins完成。极限是你的想象力

A我有一些建议给你:如果你正在使用一个构建工具(你应该使用一个),比如maven或gradle,用它来描述你所有的构建逻辑。使用Jenkins仅用于自动启动测试、生成报告以及可能部署到测试环境

另一个建议:使用的脚本语言必须能够被服务器或节点理解,这就是为什么我建议您使用Groovy()之类的脚本语言

更新

Maven/Gradle/。。。为您提供了在任何计算机上重复构建过程的可能性,如果您使用Jenkins的脚本,您将打破这一点

在我的例子中,我有两个测试环境:

  • 一个是本地构建的,带有嵌入式tomcat、内存中的activeMQ和HSQLDB数据库,用于运行集成测试(所有计算机,包括Jenkins服务器/节点都执行这些测试)。Jenkins被配置为在每次检测到新提交时启动构建过程(每小时多个)
  • 另一个是詹金斯每晚建造的。它使用Docker构建和部署容器,一个使用tomcat和my web应用程序,另一个使用RabbitMQ(它替换ActiveMQ),另一个使用PostgresQL(它替换HSQLDB)
如果我详细说明您的场景:

  • 拉取源代码:必须由Jenkins执行以初始化作业
  • 修改:必须由maven执行
  • 构建:必须由maven执行
  • 部署到测试服务器:可以由Jenkins(脚本)或maven(插件)完成

谢谢。关于你的建议,你是说我应该使用maven来执行脚本,然后使用Jenkins进行maven构建?