i2vm

ingtube version manager

Usage no npm install needed!

<script type="module">
  import i2vm from 'https://cdn.skypack.dev/i2vm';
</script>

README

i2vm

i2vm (ingtube version manager) 映兔版本管理工具

install

# 先安装 node
$ brew install node

# 全局安装 i2vm
$ sudo npm i i2vm -g

usage

申请使用时先将 ~/.ssh/id_rsa.pub 发给 liminghang 同志,开通功能。

初始化版本服务

# 命令行方式
$ i2vm init v1.0.0 nodeapi ...
# 返回结果
✔ i2vm home init
✔ update services meta data
✔ ver: v1.0.0 init succeed


-null
+{
+  "nodeapi": ""
+}
# 文件方式导入依赖
$ i2vm init -f dep.yaml

配置文件支持 json 和 yaml 格式, 如 dep.yaml:

ver: v2.6.0
svcs:
    - sx-cp-user-server
    - private_share_order_rpc_server
    - ...

版本校验

$ i2vm check -t v1.0.0

# 输出结果
✔ fetch tag commits of github succeed
✔ get image commits of k8s deployment
✔ get stats of k8s deployment


NAME       DESIRED    CURRENT    UP-TO-DATE    AVAILABLE    AGE     GIT_COMMIT                                  K8S_COMMIT
nodeapi    1          1          1             1            243d    7b27e9be1d25845272bfe2715ec58e1a55d8824c    7b27e9be1d25845272bfe2715ec58e1a55d8824c

版本发布

# 按 tag 发布
$ ./i2vm deploy -t v1.0.0

# 输出结果
✔ backup services v1.0.0: nodeapi
✔ deploy nodeapi#7b27e9be1d25845272bfe2715ec58e1a55d8824c on DEV succeed


NAME       DESIRED    CURRENT    UP-TO-DATE    AVAILABLE    AGE
nodeapi    1          1          1             1            243d
# 发布 dev 环境的 node-crawler-job-server 服务,使用 4342bd5971fdada86590b735ce48dd6b6dc3c9cd commit 作为镜像
$ i2vm deploy dev node-crawler-job-server 4342bd5971fdada86590b735ce48dd6b6dc3c9cd

# 发布 node-crawler-job-server 服务对应的仓库的 master 分支上的最新 commit
$ i2vm deploy dev node-crawler-job-server

# 当前工程当前分支的最新 commit 发布到 dev 环境
$ i2vm deploy dev

# 当前工程当前分支的最新 commit 发布到 dev 环境(默认发布到 dev 环境)
$ i2vm deploy