Thoughtworks go 如何配置Thoughtworks:GO任务以部署repo?

Thoughtworks go 如何配置Thoughtworks:GO任务以部署repo?,thoughtworks-go,Thoughtworks Go,我试图弄清楚如何创建一个任务(自定义命令,而不是ant/rake等)来将git repo部署到某个服务器/目标(在本例中是Heroku)。如果我要手动执行此操作,只需使用git-push-heroku-master 我创建了一个基本管道/阶段/作业/任务(自定义命令,在本例中是Python脚本)和单个代理。管道有一个材质(git repo,带名称)。在脚本内部,我打印出os.environ.items()——它有几个变量,包括最新提交的SHA——但没有实际存储库的URL 那么,代理(或任务)应该

我试图弄清楚如何创建一个任务(自定义命令,而不是ant/rake等)来将git repo部署到某个服务器/目标(在本例中是Heroku)。如果我要手动执行此操作,只需使用git-push-heroku-master

我创建了一个基本管道/阶段/作业/任务(自定义命令,在本例中是Python脚本)和单个代理。管道有一个材质(git repo,带名称)。在脚本内部,我打印出
os.environ.items()
——它有几个变量,包括最新提交的SHA——但没有实际存储库的URL

那么,代理(或任务)应该如何知道要部署哪个存储库呢

管道知道材质名称,我尝试传入环境变量,如${materialName}(该变量不起作用)。我可以在任务中硬编码URL,但这不是真正的解决方案


Thoughtworks:GO的文档很有光泽,但在细节上有点稀疏。我本以为这种基本的东西会被很好地记录下来,但如果是这样的话,我到目前为止还没有找到它。

当任务在代理上运行时,它会克隆材料(配置)中指定的存储库。.git/config没有远程Heroku url,因此,
git-push-Heroku-master
无法工作

在将git repo部署到Heroku之前,需要添加Heroku远程url

git远程添加herokugit@heroku.com:project.git

其中project是Heroku项目的名称。除非每次都执行一次,否则只需执行一次(在删除代理上工作目录中所有文件/目录的阶段设置中,您也可以从UI中看到此选项:管理->管道->阶段->阶段设置选项卡)在这种情况下,在运行要部署的任务之前,可能必须通过任务添加远程url

完成此操作后,您应该能够使用heroku xxxx命令(假设您在用于部署的代理计算机上安装了heroku Toolbelt),并且应该能够像往常一样通过
git push heroku master
推送到heroku