我有一个应用程序,已在App Store和Play商店发布.发布的应用程序指向我的生产服务器.我想要做的是让我的设备安装一个指向我的登台服务器的"临时"应用程序,这样我就不会在开发期间搞砸真正的用户.基本上,我的设备将有两个我的应用程序 - MyApp和MyApp_Staging.登台应用程序必须能够分发给我的测试人员.
我使用Parse的Push Notification功能.登台应用程序如何具有相同的功能?我是否需要另一个开发者帐户来暂存应用程序?
我一直在关注iOS Beta测试功能.在推送给我的测试人员之前,Apple似乎必须审查我的临时应用程序.如何跳过审核流程?对于Android,分阶段推出似乎是一个好主意,但分阶段的应用程序将取代生产应用程序.
有没有办法在设备上安装暂存和生产应用程序?
假设有3个数据库
据我所知,Staging数据库需要与Production数据库同步但是,
当我们开发时,我们可以使用Dev数据库和更改模式做任何我们想做的事情.现在来了鸡和鸡蛋问题.
要在Staging中进行测试,需要根据Dev数据库中所做的更改来更改Staging数据库模式.但是Staging数据库需要与Production同步.
你们是如何解决这个问题的?
我正在努力找出保护我的临时环境的最佳方法.目前我在同一台服务器上运行暂存和生产.
我能想到的两个选择是:
使用rails摘要身份验证
我可以把这样的东西放在application_controller.rb中
# Password protection for staging environment
if RAILS_ENV == 'staging'
before_filter :authenticate_for_staging
end
def authenticate_for_staging
success = authenticate_or_request_with_http_digest("Staging") do |username|
if username == "staging"
"staging_password"
end
end
unless success
request_http_digest_authentication("Admin", "Authentication failed")
end
end
Run Code Online (Sandbox Code Playgroud)
这是从Ryan Daigle的博客中扯下来的.我正在运行最新的Rails 2.3,所以我应该摆脱他们对此的安全问题.
使用Web服务器身份验证
我也可以使用.htaccess或apache权限实现这一点,但是它使我的服务器配置稍微复杂一些(我使用Chef,并且需要不同的apache配置用于登台/生产).
现在我有第一个实施和工作,你看到它的问题吗?我错过了一些明显的事吗?提前致谢!
我有一个ASP.NET项目,其中包含以下目录
\ ads
\ photos
这两个文件夹中都有数以千计的文件,这些文件经常更新.我目前的IIS设置如
\ inetpub\wwwroot\foo
\ inetpub\wwwroot\foo\ads
\ inetpub\wwwroot\foo\photos
\ inetpub\wwwroot\foo.staging
\ inetpub\wwwroot\foo.staging\ads
\ inetpub\wwwroot\foo.staging\photos
我正在考虑把它变成
\ inetpub\wwwroot\foo
\ inetpub\wwwroot\foo\ads
\ inetpub\wwwroot\foo\photos
\ inetpub\wwwroot\foo.staging
\ inetpub\wwwroot\foo .staging\ads
\ inetpub\wwwroot\foo.staging\photos
\ inetpub\wwwroot\foo.resources\ads
\ inetpub\wwwroot\foo.resources\photos
并将foo和foo.staging中的子目录转换为指向foo.resources子目录的虚拟目录.这样,当我在分段测试时,我不必在每次部署时复制广告和照片中的所有文件,并担心事情不同步.这是一个坏主意吗?我正在使用Visual Studio 2008进行开发 - 有没有办法让VS将我的Web应用程序项目子目录视为虚拟目录?
我使用GitHub只读URL将一个repo克隆到我团队的登台服务器上.我对配置文件进行了一些更改.
我想将服务器上的repo clone更改为read-write,这样我就可以'git push'配置文件发生变化.
我该怎么做呢?
或者是否有一种更好的"最佳实践"方式来处理这种情况,而不是从登台服务器提交?
我从乘客那里迁移到独角兽之后,在舞台上遇到了一个奇怪的问题.
我为开发和登台环境配置了独角兽.它在开发中工作但不在分期中工作.在开发过程中,它会监听8080,就像在分段监听unix套接字一样.会有什么不同吗?特别是在生产中有点环境?
当我在分段中运行它时会发生这种情况
我已经记录了有关此问题的问题,请点击此处
这是我在unicorn.stderr.log中看到的
I, [2011-08-26T09:02:53.324286 #5026] INFO -- : unlinking existing socket=/home/krishnaprasad/project_name/tmp/sockets/unicorn.sock
I, [2011-08-26T09:02:53.324502 #5026] INFO -- : listening on addr=/home/krishnaprasad/project_name/tmp/sockets/unicorn.sock fd=3
I, [2011-08-26T09:02:53.324860 #5026] INFO -- : Refreshing Gem list
Run Code Online (Sandbox Code Playgroud)
为什么要尝试刷新宝石?有没有办法在配置文件中避免它?
这就是我在config/unicorn_staging.rb中所拥有的
# unicorn_rails -c /config/unicorn_staging.rb -E staging -D
rails_env = 'staging'
working_directory "/home/krishnaprasad/Projects/project_name"
worker_processes 1
preload_app true
timeout 90
rails_root = "/home/krishnaprasad/Projects/project_name"
listen "#{rails_root}/tmp/sockets/unicorn.sock", :backlog => 2048
pid "#{rails_root}/tmp/pids/unicorn.pid"
stderr_path "#{rails_root}/log/unicorn.log"
stdout_path "#{rails_root}/log/unicorn.log"
GC.copy_on_write_friendly = true if GC.respond_to?(:copy_on_write_friendly=)
before_fork do |server, worker| …Run Code Online (Sandbox Code Playgroud) configuration staging setup-deployment unicorn ruby-on-rails-3
阶段构建与阶段服务器进行对话,阶段服务器与生产服务器尽可能相同,以用于测试目的.
生产构建与生产服务器对话,生成服务器存储真实的关键数据.
这些构建基本上适用于同一个应用程序.但是,iTunes Connect界面将显示以下内容:

即构建由其构建号唯一标识,而不是其他任何东西.
问题在于:没有任何东西向我表明任何特定的构建是阶段还是生产.我怎么可能被记得要记得?
那么 - 我该如何分别管理STAGE和PRODUCTION构建?有什么想法吗?
ps好吧,我想最简单的方法是在iTunes Connect上创建两个独立的应用程序 - 一个用于STAGE,另一个用于PRODUCTION.您可以为任何其他托管服务执行此操作,因此我猜这里没有区别.
我有一些文件/文件夹只是不会离开Git临时区域?
# On branch master
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
# (commit or discard the untracked or modified content in submodules)
#
# modified: JavaScript/Stand.ard.iz.er (modified content, untracked content)
# modified: Site (untracked content)
# modified: Template Archives/Template (modified content, untracked content)
# modified: Template Archives/Template_Git (modified content, untracked content)
#
Run Code Online (Sandbox Code Playgroud)
我已经尝试了所有这些"修改"的文件,但没有运气?
我试过了...
git add .
git …Run Code Online (Sandbox Code Playgroud) 我正在使用SmartGit/Hg.我编辑了一些处理两个独立新功能的文件.现在,当我完成功能A的工作时,我想提交我的工作,但我不能只提交我编辑的所有文件,因为它们包含功能B的更改,我现在不想提交.
我已经使用 Cloud Build 等在 Google Cloud Run 上启动并运行了一个示例应用程序,并附带来自 GitHub 的 CD。我希望将不同的分支部署到不同的环境(开发、阶段产品等),但是文档没有暗示任何类型的设置。
我能想到的最简单的方法是在不同的分支 RegExes 上使用 Cloud Build 触发器设置单独的 Cloud Runs,但我想知道是否有更优雅的解决方案,因为这仍然感觉像是一种非常“手动”的方法来实现什么我想。
我找到了一个答案(如何让 Cloud Run 处理多个同时部署?),它证实这是一种已遵循的做法,但我只是想确认这是否确实是最好的方法,或者 GCP 是否提供了更好的方法这个目的。
我对 Google Cloud Run 以及整个 Google Cloud Platform 都是新手。
production-environment staging continuous-deployment google-cloud-platform google-cloud-run