Travis-CI部署每个主提交,但不分配分支提交

时间:2017-11-01 08:00:17

标签: git github travis-ci

我已经设置了travis来测试我的项目,并为每次提交部署一个docker构建。

我真正想要做的是测试我所拥有的每一个提交,并且只有当它被重新命名为master时,才能部署它(它是我的暂存环境,我总是希望掌握并运行它)

有没有办法可以将这些任务分开,所以不是在每次提交时进行部署,只有在提交被重新设置为master时才会发生?

请注意,重新设置为master不会创建新的提交,因此我不确定它是否会触发travis。

以下是我的.travis.yml

sudo: required # is required to use docker service in travis

language: node_js

node_js:
  - 'node'

services:
  - docker

before_install:
  - npm install -g yarn --cache-min 999999999
  - "/sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1280x1024x16"

# Use yarn for faster installs
install:
  - yarn

# Init GUI
before_script:
  - "export DISPLAY=:99.0"
  - "sh -e /etc/init.d/xvfb start"
  - sleep 3 # give xvfb some time to start

script:
  - npm run test:single-run

cache:
  yarn: true
  directories:
     - ./node_modules

after_success:
  - npm run build:backwards # Build production AOT build
  - docker --version  # Document the version travis is using
  - pip install --user awscli # install aws cli w/o sudo
  - export PATH=$PATH:$HOME/.local/bin # put aws in the path
  #- eval $(aws ecr get-login --region us-west-2) # needs AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY envvars
  #- docker build -t ansyn/client-chrome.v.44 .
  #- docker tag ansyn/client-chrome.v.44:latest 223455578796.dkr.ecr.us-west-2.amazonaws.com/ansyn/client-chrome.v.44:latest
  #- docker push 223455578796.dkr.ecr.us-west-2.amazonaws.com/ansyn/client-chrome.v.44:latest
  - echo "deployment succeded"

1 个答案:

答案 0 :(得分:1)

看起来您需要运行部署脚本。

您会在.travis.ymldo this

deploy:
  provider: script
  script: bash scripts/deploy.sh
  on:
    branch: master

scripts/deploy.sh将包含您在after_success中当前拥有的内容。