仅当合并在主分支上时,如何要求travis部署在npm上?

时间:2019-10-08 15:45:24

标签: npm travis-ci

我们正在github上配置一个公共项目。 我们希望travis作业在每个PR上进行测试和构建,并仅在主服务器上已接受的MR上进行部署(npm发布)。

我们已经尝试过该配置,但是它不起作用:

language: node_js
node_js: 
  - 10.16.0
before_script:
  - npm run build

deploy:
  provider: npm
  email: "myemail@example.com"
  api_key:
    secure: "our secure key that is irrelevant for this question"
  after_deploy:
    - ./script/updateNpmVersion.sh
  on:
    branch: master

和./script/updateNpmVersion.sh

#!/bin/bash
git pull develop
npm version minor
git add package.json
git commit -m "bump npm version"
git push origin develop

但是它不起作用。基本上从不调用Deploy。

1 个答案:

答案 0 :(得分:0)

我认为存在语法问题。 after_deploy步骤完成后,应执行deploy脚本。另外,您可以尝试在配置on密钥时提供应用于部署的特定存储库。

另一件事,您可能需要授予执行updateNpmVersion.sh脚本所需的权限。因此,您最终的yml文件应该看起来像这样

language: node_js

node_js: 
  - 10.16.0

before_script:
  - npm run build
  - chmod +x ./script/updateNpmVersion.sh

deploy:
  provider: npm
  email: "myemail@example.com"
  api_key:
    secure: "our secure key that is irrelevant for this question"
  on:
    repo: OWNER_NAME/REPO_NAME
    branch: master

after_deploy:
    - ./script/updateNpmVersion.sh