制品仓库
制品库顾名思义是制品的仓库,制品是软件交付的成果性产物,通常是可运行的二进制形式,因此制品库通常也被称之为二进制制品仓库。制品库在开发阶段为使用各种开发语言的微服务开发者提供依赖解析的唯一入口。在构建阶段为各种语言的构建工具提供唯一的依赖解析源和统一的各种语言制品管理库。进入测试阶段后,所有测试环境部署工具从制品库拉取满足测试条件的制品进行部署,测试结束后将测试结果数据反馈到制品库,并且与制品进行关联。部署阶段依据质量关卡检查制品是否满足部署条件,满足则由部署工具从制品库拉取制品对接环境进行部署。
制品库致力于帮助开发者统一管理各种开发语言在开发、构建过程中的依赖,构建成果(二进制制品)以及交付过程关键信息的重要组件。制品库衔接持续集成和持续部署,是持续集成的成果管理仓库,也是持续部署的物料来源,同时也为研发的静态安全提供保障。
现阶段云效的制品仓库支持:
- Maven 仓库
- NPM 仓库
- 通用制品仓库
脚本上传
根据场景不同,结合实际进行处理,这里记录笔记后续参库使用
#!/bin/bash
###############################################
# 构建并发布版本使用 #
# 需本地添加环境变量 #
###############################################
#来源文件存放地址
EC_SOURCE_PATH=/地址/docker_v2/ec_web_code.tar
#远程文件上传地址
EC_TARGET_PATH=https://地址/artifactory/snapshot-generic-local/ec_web/ec_web_code.tar
##########################
#列出标签
#git tag
#附注标签&推送标签
#git tag -a v0.0.3 -m "ec_web_code v0.0.3" && git push origin v0.0.3
#获取指定tag版本
tag_version="`git describe --tags --match 'v*.*.*' | cut -d / -f 2 | cut -d - -f 1`"
is_check=false
ls_date=$(date +%Y%m%d%H%M%S)
check() {
# 注意:由于不能填入硬编码密码,所有调整为环境变量方式存放
if [ ! -n "$EC_USERNAME" ]; then
echo "用户账号【EC_USERNAME】不能为空,需要配置环境变量"
elif [ ! -n "$EC_PASSWORD" ]; then
echo "用户密码【EC_PASSWORD】不能为空,需要配置环境变量"
else
is_check=true
echo "检查配置和环境变量正常"
fi
}
clean() {
echo "===========移除=============="
rm -rf ec_web_code
rm -rf docker_v2/ec_web_code*.tar
sleep 1
}
build() {
echo "===========构建=============="
npm run build
sleep 1
}
vczf() {
echo "===========压缩=============="
tar -vczf ec_web_code_${ls_date}.tar ec_web_code/
}
move() {
echo "===========移动=============="
mv ec_web_code*.tar docker_v2/
cd docker_v2/
cp ec_web_code_${ls_date}.tar ec_web_code.tar
}
upload() {
if [ ! -f "$EC_SOURCE_PATH" ]; then
echo "文件不存在,请检查指定位置下是否存在:$EC_SOURCE_PATH"
else
echo "===========上传=============="
echo "$EC_TARGET_PATH"
curl -u $EC_USERNAME:$EC_PASSWORD -T $EC_SOURCE_PATH "$EC_TARGET_PATH"
fi
}
# 选择类型执行
case "$1" in
upload)
upload
;;
check)
check
;;
start)
check
if $is_check;then
clean
build
vczf
move
upload
fi
;;
clean)
clean
;;
*)
printf 'Usage: %s {check|start|clean|upload}\n' "$prog"
exit 1
;;
esac
参库
什么是制品参库