npm - 仅当合并到 master 分支时,如何要求 travis 在 npm 上部署?
问题描述
我们正在 github 上配置一个公共项目。我们希望我们的 travis 工作在每个 PR 上运行测试和构建,并且仅在 master 上接受的 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。
解决方案
我认为存在语法问题。您的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
推荐阅读
- angular - ng-template 中的 Angular ngForm
- ios - XMPPFRAMEWORK - 使用 xmppMessageArchiveManagement 时如何从 Xmppmessage 获取消息正文
- python - 我怎样才能发送一个十六进制数字,然后再进行必要的处理?
- javascript - 检查两个时间戳之间的当前时间戳
- javascript - Angular 9:如何使用 HttpInterceptor 显示请求的堆栈跟踪?
- sql - 如何在 SQL 中使用 groupby 聚合函数
- java - 如何使用 armed bear common lisp 创建一个 jar?
- java - 无法在 Visual Studio Code Java 扩展包中将 jar 添加为库
- python - 在 plotly.express 中添加悬停文本
- node.js - 我可以对通过 Web Socket 与我的 ReactJS 连接的 Node 服务器进行 API 调用吗?