我已经设置了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"
答案 0 :(得分:1)
看起来您需要运行部署脚本。
您会在.travis.yml
中do this
deploy:
provider: script
script: bash scripts/deploy.sh
on:
branch: master
scripts/deploy.sh
将包含您在after_success中当前拥有的内容。