# 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` 环境变量里。所以我们如果把自己的脚本路径加到了这个变量里,我们也可以实现在任意地方执行自己脚本的效果。
>
> 下面我们来介绍三种方法来达到这个目的。