我想使用 git-ftp 将我的存储库(因为我的许多客户的托管计划不包括 SSH 访问)部署到我的暂存环境中,其中 WordPress 作为子模块包含在内。这是我第一次尝试使用 Bitbucket 管道:
image: php:7.1
pipelines:
branches:
master:
- step:
deployment: staging
script:
- apt-get update
- apt-get -qq install git-ftp
- git ftp init -vv --user $sftp_user --passwd $sftp_passwd $sftp_path
尽管它没有部署 WordPress 存储库而是一个空的占位符文件,但它工作得非常好并将所有文件传输到我的服务器。
正如这里所说,对子模块的支持并非一直有效,但有一种解决方法
git submodule foreach git [init|push|catchup]
我使用 Bash 手动尝试了所有步骤,并且成功了:
$ git ftp init --user $sftp_user --passwd $sftp_passwd -vv $sftp_path
$ git submodule foreach 'git ftp init -vv $sftp_user --passwd $sftp_passwd -vv $sftp_path/$path/'
但是当我尝试将此解决方法应用于我的 bitbucket-pipelines.yml 时,子模块命令 foreach 似乎根本不起作用……测试命令仅输出
git submodule foreach 'echo $path'
+ git submodule foreach echo 'echo $path'
- 有谁知道更好的解决方法?
- 为什么子模块(+ foreach)不起作用?或者是吗?
- 该命令应该允许您访问多个变量,Bitbucket 的存储库变量是否覆盖/阻止这些变量?
谢谢你的帮助!