为.net集装箱化应用程序创build一个CIpipe道

我的目标

正如标题所说,我正在尝试为将要在Linux中的dockerized环境中运行的大量.NET服务组装一个CI(持续集成)pipe道。 我组织中的开发人员目前使用C#和VSO / TFS,所以我们试图迁移到Linux平台,同时保留我们当前团队的工具/技能。

我在各种论坛上看到很多post,但一直没有find解决我的具体需求的任何东西 – 所以如果这之前已经回答 – 我将非常感激链接!

到目前为止,我已经做了以下试图certificate我能做些什么:

  1. 用unit testing创​​build一个C#项目。
  2. 将项目检入源代码pipe理(TFS在线)
  3. 在Linux上运行Jenkins
  4. 设置Jenkins来倾听源代码控制。
  5. 当检测到新代码时,使用MSBuild插件在Jenkins节点(这是Windows机器)上启动构build
  6. 如果构build完成而没有错误,则使用MSTest插件运行与C#项目关联的所有unit testing。

所有上述似乎工作得很好 – 这是我正在努力的下一个位。

我想做的事
现在我已经完成了一个构build并在代码中进行了testing,我希望能够执行以下操作(高级别):

  1. 将源代码从Jenkins窗口节点移动到Jenkins Linux节点
  2. 在Linux节点上构buildDocker容器
  3. 将Docker容器推入存储库

我曾经尝试过
我正在Jenkins使用自由式项目来编排上述内容。 (不知道这是不是正确的select – 但似乎没有打破汗水拉/build立/testing。)

我想,为了从Windows节点到Linux节点的代码,我需要推入到一个GIT仓库。 我的要求是,这是一个本地GIT,但如果这是不可能的,我愿意在线使用私人GIT。

我尝试build立一个Gogs-GIT本地存储库,但Jenkins并没有使用同样的语言。 在任何情况下 – 我一直无法弄清楚如何使用任何Jenkins插件将代码作为从我的Windows节点发布到不同的源代码控制环境中的后构build事件,而不是从第一个地方。

我现在想,也许我需要执行某种自定义脚本(也许在Windows节点上的批处理脚本)来推入GIT,然后有一个单独的Jenkins作业,侦听推送到GIT存储库启动Linux处理。

我对Linux和Jenkins都很新,所以任何帮助或指针都会很感激。