【Java】云原生系列4 批量定时更新本地代码库

云原生系列4 批量定时更新本地代码库

李福春发布于 2 月 17 日

【Java】云原生系列4 批量定时更新本地代码库

图中是一个自动化的机械流水线。

作为一名程序员,每天一定有非常多工作是每天必须重复的,

如何消除重复性的工作?也让自己日常重复工作自动化呢?

背景和需求

【Java】云原生系列4 批量定时更新本地代码库

开发人员入职一家新公司,一般会使用git来进行代码的版本管理和协作,

负责的代码库随着时间的推移会慢慢增加,最后可能会有1-20个代码工程,

有些是新的工程,需要做新的功能特性开发,有的是老的工程做维护开发,

而每个工程可能是多人协作的。手工更新多个代码工程的代码,

有一些重复性的工作在里面,随着时间的推移,

这个时间的消耗会更多,浪费了大量的编码和设计时间。

【Java】云原生系列4 批量定时更新本地代码库

假如每天花2分钟做拉取代码, 如果你维护20个工程,

一年按照正常工作日上班,需要耗费173个小时时间。

目标提炼

这个批量更新代码的时间完全可以自动化,即通过定时任务执行脚本的方式,

每日定时的批量更新你的代码工程,节约这个每年86个小时的时间,

有更多的时间做设计和陪女朋友。

实现路径

要点:

  1. 列举出你维护的git代码工程,并简单备注名称,类型;
  2. 没有则clone代码到本地,有则拉取代码到本地,并做一定扩展;
  3. 定时任务执行你的任务,在上班之前执行;

【Java】云原生系列4 批量定时更新本地代码库

列举维护的代码工程

文件名: codeProject.text

比如我录入了我放在github上的三个工程代码;

[email protected]:carterbrother/springbootpractice.git|springbootpractice|springboot练习代码|backend

[email protected]:carterbrother/COLA.git|cola|cola骨架代码|backend

[email protected]:carterbrother/cat.git|cat|cat服务监控代码|backend

循环处理代码并可不断扩展

一个shell循环处理即可,同时预留扩展;

比如如果是java后端工程,需要执行mvn clean install到本地;

如果是vue前端工程需要执行类似的操作;

总体的脚本如下:

#!/usr/bin/env bash

#set -e

function doExtend() {

serviceType=$1

appPath=$2

if [ ${serviceType} == 'backend' ]; then

cd ${appPath}

git checkout dev

git pull

mvn clean install -Dmaven.test.skip=true

fi

}

echo '拉取工作维护代码到本地开发机器'

export shPath="${PWD}"

echo "当前路径:${shPath}"

export codeBasePath=~/src/work

echo "你设置存放工作代码的目录是:${codeBasePath}"

if [ ! -d ${codeBasePath} ]; then

echo "你设置存放工作代码的目录是:${codeBasePath} 它不存在,自动创建它!"

mkdir -p ${codeBasePath}

fi

export codeProject="codeProject.txt"

echo '按照行来读取您维护的代码工程文件: ${codeProject}'

for line in $(cat "${shPath}/${codeProject}"); do

echo "line conent: ${line}"

arr=(${line//|/ })

repoName=${arr[0]}

serviceName=${arr[1]}

serviceTitle=${arr[2]}

serviceType=${arr[3]}

echo "服务名称: ${serviceTitle},服务类型:${serviceType} 仓库git地址:${repoName} "

appPath="${codeBasePath}/${serviceName}"

if [ ! -d ${appPath} ]; then

pwd

echo "代码${serviceName}不存在,需要git clone到本地"

cd ${codeBasePath}

git clone "${repoName}"

else

cd ${appPath}

pwd

echo "代码${serviceName}存在,需要更新 git pull"

git pull

fi

doExtend ${serviceType} ${appPath}

done

前提是你需要配置好你的git的ssh公钥信息到你的gitlab库,

这里不会配置的话可自行利用搜索引擎。

定时任务执行脚本

我使用的是mac电脑,可以使用crontab工具来定时的执行上面的脚本。

命令格式:

crontab [-u user] file

crontab [-u user] [ -e | -l | -r ]

备份和恢复crontab

# 备份

crontab -l > $HOME/.mycron

# 恢复

crontab $HOME/.mycron

把文件放到对应的位置,crontab -e编辑,写入指令即可。

#每天6点定时拉取代码

* 6 * * * sh ~/tool/codetool/pullCode.sh

小结

一句话概括本篇:使用shell指定和定时任务crontab自动化的批量更新你的代码工程一年可节约86个小时时间。

【Java】云原生系列4 批量定时更新本地代码库

java

阅读 11发布于 2 月 17 日

本作品系原创,采用《署名-非商业性使用-禁止演绎 4.0 国际》许可协议

avatar

李福春

code for life .

92 声望

8 粉丝

0 条评论

得票时间

avatar

李福春

code for life .

92 声望

8 粉丝

宣传栏

【Java】云原生系列4 批量定时更新本地代码库

图中是一个自动化的机械流水线。

作为一名程序员,每天一定有非常多工作是每天必须重复的,

如何消除重复性的工作?也让自己日常重复工作自动化呢?

背景和需求

【Java】云原生系列4 批量定时更新本地代码库

开发人员入职一家新公司,一般会使用git来进行代码的版本管理和协作,

负责的代码库随着时间的推移会慢慢增加,最后可能会有1-20个代码工程,

有些是新的工程,需要做新的功能特性开发,有的是老的工程做维护开发,

而每个工程可能是多人协作的。手工更新多个代码工程的代码,

有一些重复性的工作在里面,随着时间的推移,

这个时间的消耗会更多,浪费了大量的编码和设计时间。

【Java】云原生系列4 批量定时更新本地代码库

假如每天花2分钟做拉取代码, 如果你维护20个工程,

一年按照正常工作日上班,需要耗费173个小时时间。

目标提炼

这个批量更新代码的时间完全可以自动化,即通过定时任务执行脚本的方式,

每日定时的批量更新你的代码工程,节约这个每年86个小时的时间,

有更多的时间做设计和陪女朋友。

实现路径

要点:

  1. 列举出你维护的git代码工程,并简单备注名称,类型;
  2. 没有则clone代码到本地,有则拉取代码到本地,并做一定扩展;
  3. 定时任务执行你的任务,在上班之前执行;

【Java】云原生系列4 批量定时更新本地代码库

列举维护的代码工程

文件名: codeProject.text

比如我录入了我放在github上的三个工程代码;

[email protected]:carterbrother/springbootpractice.git|springbootpractice|springboot练习代码|backend

[email protected]:carterbrother/COLA.git|cola|cola骨架代码|backend

[email protected]:carterbrother/cat.git|cat|cat服务监控代码|backend

循环处理代码并可不断扩展

一个shell循环处理即可,同时预留扩展;

比如如果是java后端工程,需要执行mvn clean install到本地;

如果是vue前端工程需要执行类似的操作;

总体的脚本如下:

#!/usr/bin/env bash

#set -e

function doExtend() {

serviceType=$1

appPath=$2

if [ ${serviceType} == 'backend' ]; then

cd ${appPath}

git checkout dev

git pull

mvn clean install -Dmaven.test.skip=true

fi

}

echo '拉取工作维护代码到本地开发机器'

export shPath="${PWD}"

echo "当前路径:${shPath}"

export codeBasePath=~/src/work

echo "你设置存放工作代码的目录是:${codeBasePath}"

if [ ! -d ${codeBasePath} ]; then

echo "你设置存放工作代码的目录是:${codeBasePath} 它不存在,自动创建它!"

mkdir -p ${codeBasePath}

fi

export codeProject="codeProject.txt"

echo '按照行来读取您维护的代码工程文件: ${codeProject}'

for line in $(cat "${shPath}/${codeProject}"); do

echo "line conent: ${line}"

arr=(${line//|/ })

repoName=${arr[0]}

serviceName=${arr[1]}

serviceTitle=${arr[2]}

serviceType=${arr[3]}

echo "服务名称: ${serviceTitle},服务类型:${serviceType} 仓库git地址:${repoName} "

appPath="${codeBasePath}/${serviceName}"

if [ ! -d ${appPath} ]; then

pwd

echo "代码${serviceName}不存在,需要git clone到本地"

cd ${codeBasePath}

git clone "${repoName}"

else

cd ${appPath}

pwd

echo "代码${serviceName}存在,需要更新 git pull"

git pull

fi

doExtend ${serviceType} ${appPath}

done

前提是你需要配置好你的git的ssh公钥信息到你的gitlab库,

这里不会配置的话可自行利用搜索引擎。

定时任务执行脚本

我使用的是mac电脑,可以使用crontab工具来定时的执行上面的脚本。

命令格式:

crontab [-u user] file

crontab [-u user] [ -e | -l | -r ]

备份和恢复crontab

# 备份

crontab -l > $HOME/.mycron

# 恢复

crontab $HOME/.mycron

把文件放到对应的位置,crontab -e编辑,写入指令即可。

#每天6点定时拉取代码

* 6 * * * sh ~/tool/codetool/pullCode.sh

小结

一句话概括本篇:使用shell指定和定时任务crontab自动化的批量更新你的代码工程一年可节约86个小时时间。

【Java】云原生系列4 批量定时更新本地代码库

以上是 【Java】云原生系列4 批量定时更新本地代码库 的全部内容, 来源链接: utcz.com/a/115243.html

回到顶部