麻烦创建一个简单的部署应用程序

时间:2016-08-09 08:34:45

标签: php git

我为我的PHP应用程序创建了一个部署应用程序,实际上这是一个管理3个环境的简单PHP页面(dev,rc,prod)。 此页面获取有关上次提交和每个环境的信息,允许开发人员使用标记更改环境的版本 我看到几个应用程序(例如github,packagist ......)使用标签版本,但我遇到了一些问题 以前,我使用的是SVN,它非常容易和快速,所以我对Git感到沮丧,也许你可以帮助我。
我在几个项目中使用gitlab和github
首先,要小心只有一个git远程请求可能非常慢(1到6秒)

获取有关上次提交的信息
要获得这些信息,我必须获取开发环境然后我正在做 Time A B 12:30 1.2 -3.4 12:35 4.7 -4.0
我使用随机__TOKEN__来解析结果,git可以在它之前添加更多信息,但我不在乎。
结果可能是:

git --no-pager show  --name-status --format="__TOKEN__%n%H%n%T%n%P%n%d%n%an%n%ae%n%aD%n%cn%n%ce%n%cD"

这是有效的,但我每次都要抓取它。

我以同样的方式获取有关环境的信息。

列出版本(标签)
现在,我需要列出所有版本的名称和日期,所以我正在做___DATA-57a988c31bbf2___ b4041b95c0221fe211ea74110a421842f625f2c8 2287ccb797fc886055a5f4afc56aa90d7dcf4a4e d1c618e0f50783efff209ba6c0752d55f14bd241 (HEAD, v0.1.7.2, origin/master, origin/HEAD, master) Loenix myemail@domain.com Mon, 8 Aug 2016 15:09:44 +0200 Loenix myemail@domain.com Mon, 8 Aug 2016 15:09:44 +0200
我得到了结果:

git for-each-ref --sort=taggerdate --format "%(tag)|%(taggerdate)" refs/tags | sort -V

这不是很好。

更改环境版本
我目前找到2个解决方案:

  1. v0.1.5|Mon Jun 6 22:14:18 2016 +0200 v0.1.6|Mon Jun 6 22:47:02 2016 +0200 v0.1.7.1|Mon Aug 8 13:55:59 2016 +0200 v0.1.7.2|Mon Aug 8 15:10:02 2016 +0200 v0.1.7|Mon Aug 8 13:36:12 2016 +0200 将当前版本更新为新版本。问题是当我使用composer时,composer.lock在本地更改,git返回错误。
  2. git checkout v0.1.7.2这取代了文件夹中的所有内容......
  3. 我可以通过忽略它来修复composer.lock错误。

    我在操作版本方面遇到了一些麻烦,因为环境可能在master或标记上分支,我无法有效地识别环境的标记(版本)。

    我正在缓存标签,但通过这种方式,我的页面需要5-10秒才能加载...

    你帮我解决了这个问题吗?你有什么建议吗? 你觉得我应该用另一种方式吗? 我也可以使用一个简单的现有部署应用程序,但我找不到任何好的。

    PS:在debian / ubuntu操作系统上使用system()PHP函数运行所有命令。

1 个答案:

答案 0 :(得分:0)

Loenix,我认为在您的情况下,最好的方法是使用专用软件,例如。 buddy.works。您可以为每个服务器创建一个单独的部署环境(他们称之为Buddy中的管道)+应用程序本身很轻,使用起来非常简单(只需点击一下)。

使用system()进行手动部署很困难,可能容易出错