Как попросить travis развернуть на npm только при слиянии на ветке master? - PullRequest
0 голосов
/ 08 октября 2019

Мы настраиваем публичный проект на github. Мы бы хотели, чтобы наша задача travis выполняла тестирование и сборку для каждого PR и развертывание (npm publish) только на принятом MR на master.

Мы попробовали эту конфигурацию, но она не работает:

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 голосов
/ 09 октября 2019

Я думаю, что есть проблема с синтаксисом. Ваш скрипт 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
...