利用gitlab CI做到npm 包push 后直接发布,自动登陆

自动发布的难点在于用命令自动登陆npm,正常发布要npm login,然后手动输入用户名密码,但是自动发布不能这样做。

  • 编写.npmrc文件
registry=http://yourbindingRegistryServerHost
//yourbindingHost:always-auth=false
//yourbindingRegistryServiceHost:_password=加密过的密码串
//yourbindingRegistryServiceHost:username=myname
//yourbindingRegistryServiceHost:email=myname@localhost.com
//yourbindingRegistryServiceHost:_authToken="xxxxx"
  • 编写CI文件,
// .gitlab-ci.yml
before_script:
 - node -v
 - yarn -v 
 - yarn config set proxy http://xxxxx:xxx
 - yarn 

stages:
 - merge 
 - publish

job1:
 stage: mege
  script:
    - git pull origin master:develop
    ......

job2:
 stage: mege
  script:
    - npm  version patch
    - git commit -am 'chore:build'
    - git publish --userconfig=./.npmrc
    - git push xxxxxxx --tags

之前有另一个例子是这样的,我是参考他的,但是一直无法成功,原因是他的nomrc文件缺少token,一直校验不通过
https://segmentfault.com/a/1190000015692830

token可以通过 cat ~/.nomrc获取
那些私密变量在ci里面设置secret variable

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容