如何使用管道设置部署到远程 SSH 服务器

How to setup deployment to the remote SSH server using pipelines

我正在创建管道,当我将更改提交到开发分支时,它将负责 运行 在我的远程服务器上部署脚本。我正在使用 laravel 使者。我需要的只是在提交后在我的远程服务器上 运行 envoy run deploy

我正在使用描述的步骤 here

这里是bitbucket-pipelines.yml 配置

pipelines:
 branches:
  develop:
   - step:
    script:
     - ssh -t user@example.com
     - cd /var/www/project_folder/html
     - envoy run deploy

发生无限执行,我收到以下消息

Pseudo-terminal 不会被分配,因为 stdin 不是终端。 警告:将 IP 地址“104.236.241.243”的 RSA 主机密钥永久添加到已知主机列表中。 欢迎使用 Ubuntu 16.04.2 LTS(GNU/Linux 4.4.0-138-generic x86_64) * 文档:https://help.ubuntu.com * 管理:https://landscape.canonical.com *支持:https://ubuntu.com/advantage 通过 Ubuntu Advantage Cloud Guest 获得云支持: http://www.ubuntu.com/business/services/cloud 可以更新 156 个包。 0 更新是安全更新。 * 需要重新启动系统 * 消息:ttyname 失败:设备的 ioctl 不合适

错误显示出了什么问题,你的服务器需要重启,接下来的两个命令也不会在远程服务器上执行,更改 ssh 命令以包括要在远程服务器上执行的命令:

ssh -t user@example.com "cd /var/www/project_folder/html && envoy run deploy"