头图

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

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

解决方案

打开工程配置

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

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

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

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

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

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

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

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


上传后的文件将会放在工作空间中指定的位置,通过执行 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

2 声望
0 粉丝
0 条评论
推荐阅读
如何让 GitHub Pages 中通过 Markdown 编辑的博客支持 Mermaid?
最近在研究通过文本和代码创建图标和可视化,Mermaid功能比较丰富,Web支持也比较友好。如何让GitHub Pages中通过Markdown编辑的博客也支持Mermaid呢?

youtiao66阅读 181

封面图
Win10 安装Docker以及Jenkins(超级详细篇)
安装Docker下载地址:[链接] ,按照它的指引教程,无脑下一步即可。安装成功后电脑会重启。打开docker桌面端,会显示进入链接,下载WSL 安装包进行无脑安装即可。安装 Linux 内核更新包 (重启电脑)重启 Docker ...

九旬3阅读 468

Jenkins
[链接]前置环境准备服务器 OS Linux CentOS数据库服务器 MYSQL ServerGithub账号Idea IDE一、简介开源平台常用于自动化测试、持续集成二、Jenkins基础下载Jenkins docker pull jenkins/jenkins第一次启动docker c...

阿南阅读 763

jenkins harbor webhook自动触发构建
cicd还是基于jenkins(spinnaker虽然也玩了,公司规模也小,简单jenkins可以走天下)其实很多场景还是手动构建的,基本没有做自动构建的jenkins流程。今天就突然有了那么一个需求。合作方大爷要频繁修改一个镜像...

对你无可奈何阅读 746

jenkins2 安装及启动
jenkins是一个开源的,自动化运行整合工具,可通过一系列的插件来实现持续构建集成,自动化接口/UI测试、运维等功能。本文主要讲述jenkins的安装和运行。

namedlock阅读 660

Java开发者必看!手把手带你搞定Jenkins+Maven仓库+Docker 仓库+部署+自动更新pom版本 一条龙部署服务
为了调通这长长的一串花费了整整4天时间。。。写完后将之前写的API都采取了这样的方式进行部署,极大程度的压缩了需要我部署的时间,还是非常值得的。

MingSF阅读 528

封面图
docker容器无限重启,不新建容器,进入原容器修复bug
问题背景环境 : Centos7 下 docker 部署 Jenkins 2.235.5故障:Jekins 根据页面提示直接版本升级 2.392,重启之后,Jenkins 页面无法访问,容器无限重启,无法进入容器。原因:查看docker日志 提示如下 {代码...}...

雾水尘阅读 456

2 声望
0 粉丝
宣传栏