123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #!/bin/bash
- set -e
- echo "git show --name-only --oneline > changelist"
- git show --name-only --oneline > changelist
- # 循环查找修改过的ALGOS/路径下的文件
- NONPERIODIC_PREFIX="ALGOS/NONPERIODIC/"
- PERIODIC_PREFIX="ALGOS/PERIODIC/"
- declare -a need_package_arr # 记录需要打包的路径
- j=0
- changelists=($(cat changelist))
- for i in $( seq 0 $((${#changelists[*]} -1)) )
- do
- if [[ ${changelists[i]} == ALGOS/* ]];then # 如果算法库有更改
- OLD_IFS="$IFS"
- IFS="/" #修改分隔符
- arr=(${changelists[i]})
- IFS="$OLD_IFS"
- if [[ ${changelists[i]} == ALGOS/NONPERIODIC/* ]];then # 如果更改的是非周期算法
- temp=$NONPERIODIC_PREFIX${arr[2]}"/"
- if [[ ! "${need_package_arr[@]}" =~ "$temp" ]]; then # 如果该 算法路径已经包含过,则跳过
- need_package_arr[$j]=$temp
- let j+=1
- fi
-
- elif [[ ${changelists[i]} == ALGOS/PERIODIC/* ]];then # 如果更改的是周期类算法
- temp=$PERIODIC_PREFIX${arr[2]}"/"${arr[3]}"/"
- if [[ ! "${need_package_arr[@]}" =~ "$temp" ]]; then
- need_package_arr[$j]=$temp
- let j+=1
- fi
- fi
- # docker run --rm -e PLUGIN_TAG=latest -e PLUGIN_REPO=octocat/hello-world -e DOCKERFILE=ALGOS/algo1/dockerfile plugins/docker --dry-run
- fi
- done
- DOCKER_PREFIX="algo-dev-internal.li-ai.com.cn:5000"
- # 开始遍历打包
- for i in $( seq 0 $((${#need_package_arr[*]} -1)) )
- do
- # cd ${need_package_arr[$i]}
- ver=$(cat ./${need_package_arr[$i]}/ver)
- ver=$((10#${ver}+1))
- echo ${need_package_arr[$i]}:1.0.$ver" 镜像打包中.........."
-
- OLD_IFS="$IFS"
- IFS="/" #修改分隔符
- arr=(${need_package_arr[$i]})
- IFS="$OLD_IFS"
-
- if [[ ${need_package_arr[i]} == ALGOS/NONPERIODIC/* ]];then
- image=${arr[2]}:1.0.$ver
- elif [[ ${need_package_arr[i]} == ALGOS/PERIODIC/* ]];then
- image=${arr[2]}_${arr[3]}:1.0.$ver
- fi
- docker build -f ./${need_package_arr[$i]}/Dockerfile -t $image .
- done
|