推送到Git主分支

时间:2018-04-13 04:50:17

标签: git github deployment continuous-integration continuous-deployment

我尝试使用Git来管理许多Windows服务器上安装的产品。这是当前状态:

  • 每个客户都已拉出存储库并位于master分支
  • 服务器始终打开并连接到Internet,
  • 我对服务器有完全访问权限(管理员),但是其他一些人(我公司外)也可以访问,所以我应该小心使用SSH密钥等凭据,
  • 产品源代码很小(不超过5MB)。

当我(作为开发人员)将提交提交到Git服务器上的master分支时,以下是我想要实现的目标:

  • 所有Windows服务器自动提取新提交并将其副本更新为最新版本,
  • 执行一些脚本(重启某些服务,运行测试等),
  • 记录整个更新过程
  • 服务器将其当前状态(Git提交,标记和分支)报告给远程服务器,以便每次推送后检查所有服务器的状态。

我有什么选择?有没有软件或我必须建立自己的软件?我检查了Git钩子,但是在我手动拉动每个服务器上的代码后它们似乎触发了。

2 个答案:

答案 0 :(得分:1)

这是一个想法,

  1. 将其中一个服务器指定为Jenkins服务器
  2. 将其余服务器设置为Slaves / Agents
  3. 继承工作流程

    1. 您提交了一个可执行文件(.sh .bat .exe)
    2. Jenkins注意到提交并在所有计算机上运行文件
    3. 代理在Jenkins
    4. 中记录终端时执行命令
    5. Jenkins告诉您构建是成功还是失败
    6. 如果你想尝试这个策略,我很乐意帮助

      Plus Jenkins是一个网络应用程序,因此您可以从许多设备访问它!

答案 1 :(得分:0)

如果您不想使用第三方部署工具,可以这样做。

  1. 部署启动
  2. 当您的git服务器更新主服务器时,它应该运行部署过程。它可以通过git服务器上的post-receive git-hook来实现。

    1. 部署流程
    2. 您应该以某种方式更新源代码并在Windows服务器上运行脚本。它可以通过不同的方式实现。例如,您可以通过ssh连接它们(您应该在那里设置ssh服务器,例如freesshd),调用git pull并从源代码运行脚本。 我建议你不要在服务器上使用存储库工作目录作为生产代码,因为它会在git pull时处于不一致状态。因此,最好使用存储库文件夹和将工作目录与实例同步的脚本。