用于构建和部署React应用的Yml配置

时间:2018-10-20 19:03:47

标签: node.js deployment continuous-integration yaml travis-ci

我想创建一个yml文件,以防止在对存储库进行新的提交时部署我的生产代码。

我只希望在直接推送到master分支的情况下构建和部署生产代码。如果创建拉取请求,则现有的yml配置将构建并部署我的更改-无需实际合并。我想停止这个。我只希望在发出拉取请求并将更改实际推送到master后完成“构建和部署”部分。

这是我当前的.travis.yml文件的样子:

language: node_js
node_js:
  - "8.12"
script: 
  - npm i
  - if [ "$TRAVIS_BRANCH" == "master" ]; then echo "Deploying to firebase";  - CI=false npm run build  fi
install:
  - if [ "$TRAVIS_BRANCH" == "master" ]; then npm i -g firebase-tools; fi
after_success:
  - if [ "$TRAVIS_BRANCH" == "master" ]; then firebase deploy --token "$FIREBASE_TOKEN"; fi 

我可以将其更改为更光滑的东西

language: node_js
node_js:
  - "8.12"

stages: 
  - compile
  - test
  - name: deploy
    if: branch = master AND NOT (type = push OR type = pull_request OR fork = true)
env:
  - CI=false

jobs: 
  include: 
    - stage: compile 
      script: 
        - npm i

    - stage: test
      script: ""

    - stage: deploy
      install: npm i -g firebase-tools
      script: 
        - npm run build
    after_success:
        - firebase deploy --token "$FIREBASE_TOKEN"

但这是无效的yml

如何设置它,使其仅在将代码实际合并到master(以及仅合并到master)中时部署。如果仍然要向其他分支(例如开发等)进行推送,我仍然要执行测试和填充。

0 个答案:

没有答案