# AutoPackage-CommitInfo **Repository Path**: dvlpCI/AutoPackage-CommitInfo ## Basic Information - **Project Name**: AutoPackage-CommitInfo - **Description**: 自动提取分支信息,并整合信息 - **Primary Language**: Shell - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-02-25 - **Last Updated**: 2023-11-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AutoPackage-CommitInfo #### 介绍 自动提取分支信息,并整合信息。 ## 一、获取当前分支所包含的分支及其分支信息 ```shell sh bulidScriptCommon/brances_info/branch_detail_info_getter/test/tssh_branch_detail_info_getter.sh sh ${CommonFun_HomeDir_Absolute}/brances_info/all_branch_info_deal.sh -envInfoF "${Package_Environment_FILE_PATH}" -rebaseBranch "${REBASE_BRANCH}" -appBranchsDir "${App_Feature_Brances_Directory_PATH}" -branchInfoF "${Develop_Branchs_FILE_PATH}" -ignoreAddJsonFileNames "${ignoreAddJsonFileNames}" -ignoreCheckBranchs "${ignoreCheckBranchNameArray[*]}" -verboseSubitem "${verboseParamForSubitem}" # 用于获取当前分支的打包环境 -envInfoF|--environment-info-json-file) Environment_FILE_PATH=$2; shift 2;; # 用于获取合入当前分支的有哪些 -rebaseBranch|--rebase-branch) REBASE_BRANCH=$2; shift 2;; # 分支信息源文件夹 -appBranchsDir|--app-feature-brances-dir) App_Feature_Brances_Directory_PATH=$2; shift 2;; # 从appBranchsDir中获取的分支要存放到的文件/存放所有整理后的分支信息源的文件。同时会将此文件的路径设置到打包环境所在的文件中,以备通过一个环境文件找到更多更具体的打包信息。 -branchInfoF|--branch-info-json-file) Develop_Branchs_FILE_PATH=$2; shift 2;; # 不添加appBranchsDir中的哪些文件,如demo.json -ignoreAddJsonFileNames|--ignoreAddJsonFileNames) ignoreAddJsonFileNames=$2; shift 2;; # 不对哪些分支进行提测时间等字段的检查,如果要都不检查,可传入"ignoreAllCheck" -ignoreCheckBranchs|--ignoreCheck-branchNameArray) ignoreCheckBranchNameArray=$2; shift 2;; # 子项的 verbose 的参数,默认无。 -verboseSubitem|--verbose-subitem) verboseParamForSubitem=$2; shift 2;; ``` | | 字段 | 描述 | 必选 | 例子 | | | ---- | ---------------------------------------------------- | ------------------------------------------------------------ | ---- | --------- | ---- | | 1 | -envInfoF
--environment-info-json-file | 用于获取当前分支的打包环境 | 必填 | | | | 2 | -rebaseBranch
--rebase-branch | 用于获取合入当前分支的有哪些 | 必填 | | | | 3 | -appBranchsDir
--app-feature-brances-dir | 分支信息源文件夹 | 必填 | | | | 4 | -branchInfoF
--branch-info-json-file | 从appBranchsDir中获取的分支要存放到的文件/存放所有整理后的分支信息源的文件。同时会将此文件的路径设置到打包环境所在的文件中,以备通过一个环境文件找到更多更具体的打包信息。 | 必填 | | | | 5 | -ignoreAddJsonFileNames
--ignoreAddJsonFileNames | 不添加appBranchsDir中的哪些文件,如demo.json | 可选 | demo.json | | | 6 | -ignoreCheckBranchs
--ignoreCheck-branchNameArray | 不对哪些分支进行提测时间等字段的检查,如果要都不检查,可传入"ignoreAllCheck" | 可选 | | | | 7 | -verboseSubitem
--verbose-subitem | 子项的 verbose 的参数,默认无。 | 可选 | | | ## 二、获取当前分支所包含的分支及其分支信息,并发送通知 在上述【一】中的通过后,可执行下面测试 ```shell sh bulidScriptCommon/branch_and_upload_result/test/tssh_branch_and_upload_result.sh ``` #### 使用说明 1. ```shell cd 项目的workspace # (获取指定版本): git clone [git-url] -b [branch-name] git clone -b 0.1.2 https://gitee.com/dvlpCI/AutoPackage-CommitInfo buildScriptSource # -b 即 --branch 表示版本号或者标签号 # 如果你想要一个不一样的名字, 你可以在该命令后加上你想要的名称。eg buildScriptSource。如不需要不用填写 git reset --hard 0.1.9 # 撤销未跟踪的文件 git clean -fdx ``` tag操作 ```shell # 删除本地tag git tag -d v1.0.1 # 删除远程tag git push origin --delete tag v1.0.1 # 本地查看不同tag的代码 git checkout v0.9.0 # 回到最初的初始化代码 git reset --hard v0.9.0 # 获取远程分支 git fetch origin tag v1.0.1 ``` ## 脚本可执行命令 branchJsonFileScript json文件的创建和修改的脚本 ``` # 可视化打开环境变量文件 open ~/.zshrc # 添加环境变量 export Project_HOME=/Users/qian/Project #project目录,替换为你自己的即可 export PATH=${PATH}:${Project_HOME}/CQCI/AutoPackage-CommitInfo/bin # 生效环境变量文件 source ~/.zshrc ``` * [如何让你的脚本可以在任意地方都可执行?](https://www.freesion.com/article/8630714624/) > 我们知道,在 Linux 下写完一个脚本,通常情况下我们需要到脚本所在的目录,才可以执行这个脚本。但是大家有没注意到,像 `ls` 、`cd` 、`pwd` 这样的命令,它们的程序是位于 `/bin` 目录下,但是我们却可以在系统的任意位置都可以执行这些程序。 > > 它们是怎么做到的? > > 那是因为这些命令对应的程序所在路径被加到了 `Path` 环境变量里。所以我们如果把自己的脚本路径加到了这个变量里,我们也可以实现在任意地方执行自己脚本的效果。 > > 下面我们来介绍三种方法来达到这个目的。