我正在尝试通过使用Travis CI部署Golang应用程序来学习连续部署。我主要来自this tutorial的Travis部分。问题是,如果我已经在运行该应用程序的实例,那么Travis不会成功部署新的构建。我必须先手动停止并从Ubuntu计算机上删除该应用程序,然后才能通过yml文件中所示的scp进行部署:
language: go
go:
- 1.11.4
script:
- GOOS=linux GOARCH=amd64 go build -v main.go
addons:
ssh_known_hosts: my_ubuntu_machine_IP
before_install:
- openssl_stuff_here
-in travis_rsa.enc -out travis_rsa -d
- chmod 600 travis_rsa
- mv travis_rsa ~/.ssh/id_rsa
before_deploy:
- eval "$(ssh-agent -s)"
- ssh-add ~/.ssh/id_rsa
after_success:
- scp main $SSH_USER@$SSH_HOST:/path/to/directory
如何在Travis中停止和删除Golang应用,然后在转移后启动新的构建?
由于Nginx和Travis在生产环境中处理了该应用程序,因此如何从Travis重新启动Nginx和systemd单元?
我已经搜索了Google,还查看了deployment上的Travis文档,但没有发现任何东西。我正在使用DigitalOcean,这不是受支持的提供商。