图中是一个自动化的机械流水线。
作为一名程序员,每天肯定有十分多工作是每天必须反复的,
如何打消重复性的工作?也让本人日常反复工作自动化呢?
背景和需要
开发人员入职一家新公司,个别会应用git来进行代码的版本治理和合作,
负责的代码库随着工夫的推移会缓缓减少,最初可能会有1-20个代码工程,
有些是新的工程,须要做新的性能个性开发,有的是老的工程做保护开发,
而每个工程可能是多人合作的。手工更新多个代码工程的代码,
有一些重复性的工作在外面,随着工夫的推移,
这个工夫的耗费会更多,节约了大量的编码和设计工夫。
如果每天花2分钟做拉取代码, 如果你保护20个工程,
一年依照失常工作日下班,须要消耗173个小时工夫。
指标提炼
这个批量更新代码的工夫齐全能够自动化,即通过定时工作执行脚本的形式,
每日定时的批量更新你的代码工程,节约这个每年86个小时的工夫,
有更多的工夫做设计和陪女朋友。
实现门路
要点:
- 列举出你保护的git代码工程,并简略备注名称,类型;
- 没有则clone代码到本地,有则拉取代码到本地,并做肯定扩大;
- 定时工作执行你的工作,在下班之前执行;
列举保护的代码工程
文件名: codeProject.text
比方我录入了我放在github上的三个工程代码;
git@github.com:carterbrother/springbootpractice.git|springbootpractice|springboot练习代码|backendgit@github.com:carterbrother/COLA.git|cola|cola骨架代码|backendgit@github.com:carterbrother/cat.git|cat|cat服务监控代码|backend
循环解决代码并可一直扩大
一个shell循环解决即可,同时预留扩大;
比方如果是java后端工程,须要执行mvn clean install到本地;
如果是vue前端工程须要执行相似的操作;
总体的脚本如下:
#!/usr/bin/env bash#set -efunction 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/workecho "你设置寄存工作代码的目录是:${codeBasePath}"if [ ! -d ${codeBasePath} ]; then echo "你设置寄存工作代码的目录是:${codeBasePath} 它不存在,主动创立它!" mkdir -p ${codeBasePath}fiexport 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] filecrontab [-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个小时工夫。
原创不易,关注诚可贵,转发价更高!转载请注明出处,让咱们互通有无,共同进步,欢送沟通交流。