用shell解釋發佈開源工具的git commit&git tag&npm publish&gh-pages流程

由於過程複雜和老忘記改版本號(╯‵□′)╯︵┻━┻,爲簡化本身提交開源工具而寫的shell,記錄一下。webpack

用alias寫在了.zshrc裏,直接用 command [version] [commit/tag message] [subtreeDir]使用,[version][message]必須。git

其中包含了自動修改版本號、git提交操做、tag操做、publish、提交gh-pages的subtree。github

個人drag-block目前在用,前期準備工做以下:web

  • 在github上建庫
  • 使用webpack打包,設置dev和prod環境
  • build會把代碼以及示例打包,分別放在lib/ 和 example/下
  • 須要一個npm帳號在登陸狀態
  • 配置npm publish以前的ignore、files等
  • 創建gh-pages分支,並使用subtree將example/提交到該分支

會獲得:shell

  • 一個github倉庫
  • github releases,能夠用代碼包的方式下載
  • 能夠直接在npm install的工具
  • 一個github page,內容是你作的示例頁面

具體的能夠從drag-block這裏看。npm

#!/bin/sh                                                                                                                                                                                
if [ ! -n "$3" ];then
    subtreeDir="example/"
else
    subtreeDir=$3
fi

if [ ! -n "$1" ];then
    echo '請輸入版本號';
else
    sed -i '' 's#\("version": "\).*#\1'"$1"'",#g' package.json # 修改package.json中的version
    npm run build
    git add .
    git commit -m "$2"
    git tag $1 -m "$2"
    git push
    git push --tags
    npm publish
    git subtree push --prefix=${subtreeDir} origin gh-pages  # 使用subtree的方式提交個人 example/ 目錄爲gh-pages分支內容,用以github pages。
fi
相關文章
相關標籤/搜索