对于我们的项目,我们有5个svn签出需要更新,然后才能部署我们的应用程序。在我的开发环境中,快速部署比生产部署对生产率更为重要,我一直致力于加快这一过程。
我有一个bash脚本,工作正常,但有一些限制。我使用以下bash命令启动多个“svn updates”:(svn update /repo1) & (svn update /repo2) & (svn update /repo3) &
这些都是并行运行的,而且运行得很好。我还在构建脚本的其余部分中使用这个模式来启动每个ant构建,然后将wars转移到Tomcat。
但是,如果某个更新或生成失败,我无法控制停止部署。
我正在用Python编写bash脚本,这样我可以更好地控制分支和部署过程。
我使用subprocess.call()来触发“svn update/repo”命令,但每个命令都是按顺序执行的。我尝试'(svn update/repo)&;'这些都会触发,但结果代码会立即返回。因此,我无法确定某个特定命令在异步模式下是否失败。import subprocess
subprocess.call( 'svn update /repo1', shell=True )
subprocess.call( 'svn update /repo2', shell=True )
subprocess.call( 'svn update /repo3', shell=True )
我很想找到一种方法让Python关闭每个Unix命令,如果任何调用在任何时候失败,整个脚本就会停止。