Jenkins 通过上传文件的方式进行构建和发布

lxf2023-05-22 01:57:41

当 Jenkins 无法直接访问 GitLab 仓库时,也可以通过 Jenkins Web 端直接上传文件或者压缩包的方式进行构建和发布。

解决方案

打开工程配置

Jenkins 通过上传文件的方式进行构建和发布

在参数化构建过程中添加文件参数(File Parameter)

参数备注
文件路径指定上传文件的路径,相对于工作空间。(例如:./source.zip)
描述后续展示给用户看的描述信息。

浏览器表单提交中接受一个文件,作为构建参数。上传后的文件将会放在工作空间中指定的位置,你 可以在构建任务中访问并使用它。这对于很多场景下是有帮助的,例如:

  1. 让用户基于他们构建出来的成品运行测试。
  2. 允许用户在自动化上传、发布、部署过程中替换文件。
  3. 通过上传一个数据集来处理数据。

表单提交中的文件名称就是文件的路径,并且是在环境变量中可见的。例如:你把文件路径设置为 abc.zip,然后${abc.zip}会从浏览器传递给你原始的文件名称。 (例如my.zip。)这里的名称不会包含目录部分。

文件的上传是可选的。如果用户不上传任何文件,Jenkins只是简单地跳过这个参数并不会替换 任何文件(但是也不会删除任何已经存在的文件)。

在命令行模式下参数-p对于构建命令build会选择一个本地文件 (-remoting),或者从标准输出中读取。(在字符模式下,只允许定义一个文件参数) Jenkins 通过上传文件的方式进行构建和发布

在构建中直接通过执行 Shell 操作上传的文件

Jenkins 通过上传文件的方式进行构建和发布 上传后的文件将会放在工作空间中指定的位置,通过执行 Shell 即可操作上传的文件,例如 unzip -o ./source.zip

其他细节

命令描述
rm -rf mydirectory删除目录
rm -rf mydirectory/*删除目录下文件及目录
rm -rf mydirectory/{*,.[!.]*}删除目录下所有文件及目录(包括以点.开始的隐藏文件及目录)
rm -rf mydirectory-*删除所有以 mydirectory- 开始的目录

前端项目以点.开始的隐藏文件及目录较多,包括配置文件等等,所以用 {*,.[!.]*} 匹配这些文件至关重要。

具体参考《如何通过 glob 匹配除当前目录.及父目录..外所有隐藏文件》

how to glob every hidden file except current and parent directory


欢迎关注我的微信公众号:乘风破浪的Coder

本网站是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。 在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。 本网站还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。 除此之外,本网站还拥有一个活跃的社区,您可以在社区中与其他前端开发者交流技术、分享经验、解决问题。我们相信,社区的力量可以帮助您更好地成长和进步。 在本网站中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!