DevOps自动归档实践
- 2022-04-13 09:12:00
- 高玉浩 原创
- 2531
本文指导用户使用悦库网盘的yshell命令行客户端,实现对DevOps产物(测试包和发布包)自动归档到悦库网盘中。前提是需要安装并使用悦库服务端,可以查看《悦库管理员手册》进行安装。
以下是悦库基于Jenkins的全平台持续交付流水线在2022年4月8日的每日构建运行状态:
发布是单独的流水线,持续交付流水线完成后,可由人工触发,目前只有一个脚本文件,比较简单:
我们认为做好DevOps实践是实现敏捷交付的重要前提,尽可能解放团队成员重复劳动,减少不需要的麻烦,尽早发现交付风险。
1. 配置yshell命令 登录悦库官网,点击《悦库管理员手册》,查看Window系统yshell配置方法。如果内部已经安装悦库服务端则可以直接在PC客户端/WEB端的个人信息菜单中找到《悦库管理员手册》。
根据yshell的帮助手册,完成Windows配置系统命令,其他平台请看手册指导。
2. 在悦库网盘中添加一个归档账号 例如:用户名为 jenkens , 密码 666666 。并设置对归档目标路径 "/公共空间/悦库安装包" 有完全控制权限。
3. 对测试包/发布包进行归档 以悦库流水线为例,执行完成后最终会生成5个不同版本的服务端安装包:
以下归档脚本 ydiskArchive.bat 功能实现,用户可根据自己环境的实际情况自行修改:
由于目前yshell不支持上传目录下所有文件功能,因此需要逐个上传,我们后续会逐渐增强功能!
@echo off rem 脚本功能描述 rem 参数为归档类型:test(测试包)或release(发布包),使用举例:ydiskArchive.bat test rem 每日构建执行完成后,将所有生成的测试安装包上传到悦库内盘公共空间的"sprint"目录中。 rem 自动发布执行完成后,将所有发布包上传到悦库内盘公共空间的"release"目录中。 rem ysh执行失败会返回非0值,应该将这个值从脚本中返回,这样Jenkins可以识别错误并中断构建任务。 rem 切换到当前脚本所在目录 cd "%~dps0" %~d0 rem 归档方式为test或release set ArchiveType=%1 if "%ArchiveType%"=="" ( echo "请输入归档类型参数,test或release !". exit /b 1 ) echo Archive type is %ArchiveType% rem 获取当前版本号 set /p CurrVersion=<../version.txt rem 获取当前git分支 set CurrBranch="" for /F %%i in ('git rev-parse --abbrev-ref HEAD') do (set CurrBranch=%%i) echo version is %CurrVersion% , git branch is %CurrBranch% rem 构建悦库网盘目标路径 set YDiskPath="" if "%ArchiveType%"=="test" ( set YDiskPath="/公共空间/悦库安装包/sprint/%CurrBranch%" ) if "%ArchiveType%"=="release" ( set YDiskPath="/公共空间/悦库安装包/release/%CurrVersion%" ) echo YDiskPath is %YDiskPath% rem 配置悦库登录地址、用户名称和密码 ysh user -u http://192.168.0.102:2020 -a jenkens -p 666666 if not %errorlevel% == 0 (exit /b %errorlevel%) rem 在悦库中以分支名称创建文件夹。使用-p参数,如果空间或文件夹不存在会自动级联创建。 ysh mkdir -p %YDiskPath% rem 上传所有安装包,如果包已经存在则会覆盖。要获取历史包可以在该文件的历史版本信息中下载。 ysh put -f "../output/ydisks_win64_free.exe" %YDiskPath% if not %errorlevel% == 0 (exit /b %errorlevel%) ysh put -f "../output/ydisks_docker_x64.tar.gz" %YDiskPath% if not %errorlevel% == 0 (exit /b %errorlevel%) ysh put -f "../output/ydisks_docker_arm64.tar.gz" %YDiskPath% if not %errorlevel% == 0 (exit /b %errorlevel%) ysh put -f "../output/ydisks_cluster_docker_x64.tar.gz" %YDiskPath% if not %errorlevel% == 0 (exit /b %errorlevel%) ysh put -f "../output/ydisks_cluster_docker_arm64.tar.gz" %YDiskPath% if not %errorlevel% == 0 (exit /b %errorlevel%) exit /b 0
4. 将脚本加入到Jenkins流水线中 在流水线中的归档任务:
归档到悦库内盘后的 "sprint34"期 测试包:
经验交流和获得帮助
联系人: | 高先生 |
---|---|
电话: | 19963860417 |
Email: | service@ydisk.cn |
QQ: | 480247680 |
微信: | 19963860417 |
地址: | 青岛市黄岛区井冈山路157号中南金石国际广场A座3202室 |