Jenkins 通过上传文件的方式进行构建和发布
当 Jenkins 无法直接访问 GitLab 仓库时,也可以通过 Jenkins Web 端直接上传文件或者压缩包的方式进行构建和发布。
解决方案
打开工程配置
在参数化构建过程中添加文件参数(File Parameter)
参数 | 备注 |
---|---|
文件路径 | 指定上传文件的路径,相对于工作空间。(例如:./source.zip) |
描述 | 后续展示给用户看的描述信息。 |
从浏览器表单提交中接受一个文件,作为构建参数。上传后的文件将会放在工作空间中指定的位置,你 可以在构建任务中访问并使用它。这对于很多场景下是有帮助的,例如:
- 让用户基于他们构建出来的成品运行测试。
- 允许用户在自动化上传、发布、部署过程中替换文件。
- 通过上传一个数据集来处理数据。
表单提交中的文件名称就是文件的路径,并且是在环境变量中可见的。例如:你把文件路径设置为 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