用wget等命令行工具下载Jenkins上的文件

背景

现在一般公司的内部CI系统都用Jenkins实现,本地部署的时候我会将待测试文件下载到本地,再上传到Linux开发板,但能否从Linux开发板直接下载呢?只要Linux与Jenkins server之间的网络是联通的,那就可以

解决方法

使用Jenkins提供的脚本接口

Jenkins脚本接口的文档

配置步骤

步骤1,进入Dashboard->Configure界面
用wget等命令行工具下载Jenkins上的文件_第1张图片
步骤2,在API Token区域添加一次性token
点击add new token
用wget等命令行工具下载Jenkins上的文件_第2张图片
名字切记输入英文字母,然后点击Generate按钮,右边会出现一次性token,点击灰色复制按钮就能复制到剪贴板
用wget等命令行工具下载Jenkins上的文件_第3张图片
注意,API token是临时的,因此下载完毕前不要关闭此Configure页面!

实际使用

wget --auth-no-challenge --user=wanghaipeng --password=11a914998182764dc198ae9cb4dc1c33fb https://jenkins.aixin-chip.com/job/atf_bl31_signed.bin

封装成shell脚本,方便重复使用

脚本将版本文件下载到当前目录,不妨命名为jd.sh

IFS='/'
read -ra URL <<< "$2"
FILE=${URL[-1]}
IFS=' '
if [ -f $FILE ]; then
    rm -f $FILE  # 删除之前下载的同名文件
    echo start download $FILE
fi

wget --auth-no-challenge --user=wanghaipeng --password=$1 $2

注:脚本开头提取URL中文件名的bash代码来自我的之前一篇博文
记得加上可执行权限。

调用示例:

$ /path/to/jd.sh 11b6ff9a0a1b15180fc28648b9f898918c https://jenkins.aixin-chip.com/job/atf_bl31_signed.bin

--2023-06-20 11:18:17--  https://jenkins.aixin-chip.com/job/atf_bl31_signed.bin
Resolving jenkins.aixin-chip.com (jenkins.aixin-chip.com)... 10.126.11.250
Connecting to jenkins.aixin-chip.com (jenkins.aixin-chip.com)|10.126.11.250|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 38214 (37K) [application/octet-stream]
Saving to: ‘atf_bl31_signed.bin’

atf_bl31_signed.bin                       100%[==================================================================================>]  37.32K  --.-KB/s    in 0s

2023-06-20 11:18:18 (84.6 MB/s) - ‘atf_bl31_signed.bin’ saved [38214/38214]

总结

像Jenkins、Gitlab、Confluence之类可以内部部署的IT系统,一般都有脚本接口,善加利用可以提高工作效率。

你可能感兴趣的:(linux软件,jenkins,运维)