我想在本地运行我的结构脚本,然后登录到我的服务器,切换用户进行部署,激活项目.virtualenv,这会将dir更改为项目并发出git pull.
def git_pull():
sudo('su deploy')
# here i need to switch to the virtualenv
run('git pull')
Run Code Online (Sandbox Code Playgroud)
我通常使用virtualenvwrapper中的workon命令来源激活文件,postactivate文件将把我放在项目文件夹中.在这种情况下,似乎因为结构从shell内部运行,控制权交给了结构,所以我不能使用bash的源内置'$ source~/.virtualenv/myvenv/bin/activate'
任何人都有他们如何做到这一点的例子和解释?
我目前正在研究一个Cordova项目,并且遇到了一个问题,即8个神秘地附加到我的项目的versionCode中.例如:我的原始版本代码为100,新版本代码为1008
我通过整个构建管道跟踪问题,并在Gradle Build脚本中找到了负责任的代码.
if (Boolean.valueOf(cdvBuildMultipleApks)) {
productFlavors {
armv7 {
versionCode cdvVersionCode ?: defaultConfig.versionCode + 2
ndk {
abiFilters "armeabi-v7a", ""
}
}
x86 {
versionCode cdvVersionCode ?: defaultConfig.versionCode + 4
ndk {
abiFilters "x86", ""
}
}
all {
ndk {
abiFilters "all", ""
}
}
}
} else if (!cdvVersionCode) {
def minSdkVersion = cdvMinSdkVersion ?: privateHelpers.extractIntFromManifest("minSdkVersion")
// Vary versionCode by the two most common API levels:
// 14 is ICS, which is the lowest API level for …Run Code Online (Sandbox Code Playgroud) 我们有一个使用NServiceBus发布活动的网站.使用msdeploy部署站点.我们还有NServiceBus.exe作为Windows服务运行来订阅这些事件,我们也想部署它.
有没有办法打包服务以及网站,以便它也可以安装?是否可以单独打包,以便我们可以将其部署到另一台服务器?
有关如何查找有关如何执行此操作的信息的任何提示都很棒,因为我们现在可以自动部署网站.
在每次提交后,我都没有找到使用SVN从远程服务器部署到远程服务器的解决方案.如何通过FTP上传到服务器的唯一添加或编辑的文件,并从SVN删除已删除的文件我想写写后提交脚本...
自动安装MSI文件或安装程序.exe的最佳方法是什么?我们希望在已安装的产品副本上从我们的构建系统进行一些自动化测试.我们的安装程序具有通常的许可证接受屏幕,安装位置等.
正如FryHard指出的那样,有两种选择看起来很方便:
有谁知道如何获取从MSBuild命令行调用的TARGET(/ t)的名称?可以调用几种类型的目标,我希望在向用户发出通知时使用该属性.
例:
msbuild Project.proj /t:ApplicationDeployment /p:Environment=DEV
Run Code Online (Sandbox Code Playgroud)
我想访问ApplicationDeployment我的.Proj文件中的目标词.
我可以访问一个属性吗?有任何线索如何做到这一点?
编辑:我不想也要传递一个属性来获得这个.
更新:这基于使用MSBuild脚本的部署脚本.我的构建服务器不用于部署代码,仅用于构建.构建服务器本身具有可以选择的构建通知.
对于许多Web应用程序,我需要像Capistrano这样的东西来自动部署.我知道Capistrano可以用来部署非ruby应用程序,但我不熟悉Ruby,所以我希望编写部署配置可能有点痛苦.
所以我想知道,有任何替代Capistrano写的任何一个Lua Perl?
另外,忘了提一下,运行部署的平台是Windows(XP).所以卡皮斯特拉诺已经或多或少已经无从谈起.虽然我发现它可以与Git for Windows附带的MINGW32 Bash shell一起运行.
这是我的问题:
我有几个部署项目.为了部署应用程序,我需要完成几项任务,其中之一就是更改每个部署项目的产品版本和产品代码.
我找不到以编程方式改变它们的方法.
谁能帮我 ?
提前致谢.
更新:由于它是一个部署项目(最终生成可执行安装程序),我无法使用MSBuild,而是从命令提示符处使用Devenv.(布鲁诺,谢谢你的快速回复).
背景:编写自动发布脚本以从SVN版本之间导出已更改的文件并上载到远程服务器.
svn log命令显示已修改的文件和属性,但似乎无法区分内容修改与属性修改之间的详细输出.
我是否错误地阅读此输出,或者是否有一种简单的方法可以在修订版之间获取已更改文件的列表,同时忽略道具更改
这是我的示例cmd:
#: svn log "someurl" -r 2210:HEAD -v -q
Output:
------------------------------------------------------------------------
r2211 | author | 2010-02-08 12:36:56 +1300 (Mon, 08 Feb 2010)
Changed paths:
M /branches/project/release-v1-r-maintenance
M /branches/project/release-v1-r-maintenance/offroot/
M /branches/project/release-v1-r-maintenance/offroot/test.config
------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
前两个只是prop更改(mergeinfo,ignores等),而第三个项目是实际的内容编辑,这是我想要抓取的真实项目,以避免全部导出整个root.
无论如何只是从svn日志或其他命令获取/过滤内容更改.
我正在研究自动化构建过程的最佳方法.我有自己的想法(通过以前的非iOS项目的经验),但需要良好的论据支持和反对各种可能性.
目标:具有单一目标(想想白标)的单个xcode项目需要以1..N不同的风格(具体品牌)构建,具有最少的用户交互和最少的技术知识.对于AdHoc和/或AppStore.
从本质上讲,这将意味着指定每个构建; 包含Icons + Splashscreen的文件夹,包含品牌特定资源的捆绑包(大概是?)Info.plist,指定appname,bundle-id等.
需要遵守或澄清的问题;
我的个人感觉:Hudson或CruiseControl + Xcode插件.
Xcode解决方案似乎有很多文档,我已经看到了这个我正在进行的Flex项目的实际操作,几乎完全相同的白标/品牌要求.当然那是使用Ant脚本但没有任何行为配置值得尊重.这是我唯一不确定的地方......我怀疑它必须在某个地方进行硬编码,但这不是解决某些人的问题的答案.在手动构建时,希望能够通过GUI表单指定各种app-config设置(服务器URL,是支持Foo的功能,是显示的视图X等).我不确定将它变成典型的Hudson或CC配置是多么容易?
因此,已经提出的一个建议是编写一个OSX应用程序来构建我们的客户.理论上,用于输入所有必要元数据和应用程序设置的漂亮干净的非技术UI以及标有"Build"的大闪亮绿色按钮.但个人而言,我怀疑这种方法比传统的CI解决方案更灵活或更容易实现.
所以问题基本上是,什么是更可取的; 基于经典服务器,版本控制集成,CI方法还是自定义OSX实用程序?
无论我们采用哪种方式,几乎可以肯定是要求在2到3天(最多不到一周)内完成并运行.
automated-deploy ×10
svn ×2
android ×1
build ×1
capistrano ×1
cordova ×1
fabric ×1
ftp ×1
google-play ×1
lua ×1
msbuild ×1
msdeploy ×1
perl ×1
php ×1
python ×1
virtualenv ×1
xcode ×1