gitlab

阿里巴巴自研代码管理平台技术解密

允我心安 提交于 2020-07-27 09:06:15
【以下为分享实录,有删节】 阿里巴巴为什么要自研代码管理平台 也许你会问:为什么阿里巴巴要重新做一套代码管理平台,继续用GitLab版本不是挺好的吗?接下来从我个人的角度在这里尝试进行解答。 由于历史原因,在阿里巴巴集团内部代码平台是整个DevOps领域中起步相对较晚的一块业务域,相比于发布域、测试域有着多年的积累和沉淀来讲,2017年时的代码平台可以说是为了满足整体业务需求由几个系统强行拼凑起来的。 为了支撑起阿里巴巴整体的业务发展,研发团队要同时维护6个系统,分别是负责代码托管的GitLab、Svn、Gerrit,以及负责上层代码服务的Phabricator、CodeCenter、ScmCenter。且其中除了CodeCenter、ScmCenter之外,其它四个均是在开源系统之上二次封装改造而来的。其中Gitlab技术栈是基于Ruby,Phabricator基于PHP,SVN基于C,Gerrit基于Java,这给我们日常的开发和维护工作增加了很多负担。 当时代码平台遇到的困难和挑战主要有四个方面: 一、技术架构方面:多套系统架构,多种开发语言,不仅维护成本高,且与阿里集团的主流技术脱节,研发团队同学每天疲于填坑,然而整体上却得不到大的改善。 二、平台发展方面:单纯的Gitlab、Svn、Gerrit均无法与周边关联系统做到有效协同

cobra访问需要认证的gitlab代码库

十年热恋 提交于 2020-07-27 01:14:40
cobra是一个源代码安全审计工具,根据官网http://cobra.feei.cn/ 的步骤可以轻松的完成搭建。 这里会有一个场景,公司一般都自己搭建gitlab服务器,并且拉取gitlab的代码都需要通过用户名、密码认证。 但是cobra中 的git地址不支持直接使用如下方式: http://username:password@X.X.X.X/XXX/XXX.git , 网上也没有看到一篇文章有介绍这种场景,怎么办? 既然是开源的,撸了它的源码文件utils.py,发现了如下一段代码: 这段代码的意思是,如果target(也就是第一张图里面填的地址那一栏)里面存在“gitlab”字符串,那么就去config配置中查找git下面配置的username、password。 所以,明白了吧,我们通过做如下几步,就可以实现: 1、复制config文件 2、编辑config文件 填写你自己gitlab的username和passowrd 3、在/etc/hosts文件下添加自己的gitlab服务器映射 X.X.X.X XXX.gitlab.com 然后就可以通过cobra扫描自己搭建的gitlab代码了。 http://XXX.gitlab.com/XXX/XXX.git 来源: oschina 链接: https://my.oschina.net/u/4410617/blog

版本控制 gitlab

你说的曾经没有我的故事 提交于 2020-07-26 20:11:48
gitlab 1. 版本控制介绍 版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。 版本控制最主要的功能就是追踪文件的变更。它将什么时候、什么人更改了文件的什么内容等信息忠实地了记录下来。每一次文件的改变,文件的版本号都将增加。除了记录版本变更外,版本控制的另一个重要功能是并行开发。软件开发往往是多人协同作业,版本控制可以有效地解决版本的同步以及不同开发者之间的开发通信问题,提高协同开发的效率。并行开发中最常见的不同版本软件的错误(Bug)修正问题也可以通过版本控制中分支与合并的方法有效地解决。 具体来说,在每一项开发任务中,都需要首先设定开发基线,确定各个配置项的开发初始版本,在开发过程中,开发人员基于开发基线的版本,开发出所需的目标版本。当发生需求变更时,通过对变更的评估,确定变更的影响范围,对被影响的配置项的版本进行修改,根据变更的性质使配置项的版本树继续延伸或产生新的分支,形成新的目标版本,而对于不受变更影响的配置项则不应发产生变动。同时,应能够将变更所产生的对版本的影响进行记录和跟踪。必要时还可以回退到以前的版本。例如当开发需求或需求变更被取消时,就需要有能力将版本回退到开发基线版本。在曾经出现过的季度升级包拆包和重新组包的过程中,其实就是将部分配置项的版本回退到开发基线,将对应不同需求的不同分支重新组合归并

Jenkins 中以构建 Tag 来实现版本管理

浪尽此生 提交于 2020-07-24 12:45:12
好的工具和流程能使我们事半功倍,而这个过程是不断迭代和演进的。关于这一块的内容,之前写过几篇文章: 在团队中使用GitLab中的Merge Request工作模式 敏捷下的需求和代码分支管理 不断进化的分支和需求管理 现在又有了些新的变化和改进,之所以需要改进,肯定是遇到问题了,那么就先从问题来开始今天的文章。 问题 问题分为两种: 方法论的问题 :比如团队采用主干开发,主干发布的模式,但是质量得不到保证,这时通过分析讨论决定采用采用主干开发,分支发布的模式来解决,这属于从方法论层面解决问题。 落地执行的问题 :已经知道应该采用主干开发,分支发布的模式,但在实际操作的时候,难以执行下去,这属于执行的问题。 在《不断进化的分支和需求管理》一文的最后提到会引入 release 分支和 tag,实际也这么做了,但效果并不理想,原因是执行的不严格,没有做到位,具体原因如下: 发布时是对分支进行构建发布,发布后再在 GitLab 中打上 tag,一忙起来很容易忘记; 镜像的版本也是如此。 解决思路 目的其实很简单,就是让代码的 tag 和镜像的 tag 能够一致,靠人工去做这些事情比想象的要更加困难,所以稍微转换了下思路就能实现自动化,也就可以解决这个问题。 之前提到的 release 分支只做最终的集成测试; 需要发布时就从 release 分支创建 tag,对 tag 来做发布

作为程序员,你可开发哪些有趣项目?

大城市里の小女人 提交于 2020-07-24 06:08:26
初次看到原文我是有一些震撼的,原来作为开发人员,闲暇时间还算可以做这么多有趣程序的开发。阅读时暂且抛弃你所使用的语言的限制,你是否也能够在“无聊”之时找到一个开发者的乐趣。 阅读以下内容时重点关注项目的创意性,并结合自己的独特经历进行拓展,你一定也能够找到编程的乐趣所在。很多项目都可以通过不同的技术栈来进行尝试。以下为原文内容: 正文 经过1000天的培训,你能够成为一位初学者。经过10000天的练习,你将成为一位大师。 这是出自Mas Oyama的话,对学习新事物做了很好的总结。成为出色的开发人员的秘诀在于肯下功夫。要想成为一名开发人员,你需要花大量的时间在键盘上,并且需要亲手实践。 下面有7个项目可以帮助你提高开发水平。选择自己的技术栈,随心所欲的写代码吧。 项目一:吃豆人 构建吃豆人是一个很好的可以从基础角度来了解游戏开发的途径。可以通过像React或Vue这样的JavaScript框架来实现。 通过该项目你可以学到: 实体的运动 检测按键是否被按下 碰撞检测 你可以通过给幽灵添加转向行来做更多的事情 GitHub示例地址: https://github.com/mbfassnacht/pacman-react 项目二:用户管理 开发一个基于用户管理的CRUD项目,可以教会你很多关于开发的基础知识。这对刚入门的开发人员特别有用。 通过该项目你可以学到: 路由(Routing)

Cannot connect to the Docker daemon at tcp://localhost:2375/. Is the docker daemon running. On GitLab

▼魔方 西西 提交于 2020-07-23 08:09:21
问题 I'm trying to build the CI pipeline in GitLab. I'd like to ask about the docker for work in GitLab CI. from this issue : https://gitlab.com/gitlab-org/gitlab-runner/issues/4501#note_195033385 I'm follow the instruction for both ways. With TLS and not used TLS. But It's still stuck. Which in same error Cannot connect to the Docker daemon at tcp://localhost:2375/. Is the docker daemon running I've try to troubleshooting this problem. follow by below, 1) enable TLS Which used .gitlab-ci.yml and

Gitlab clone project: authentication failed

亡梦爱人 提交于 2020-07-09 13:20:07
问题 I tried to simply clone a Gitlab project jusing both HTTPS and SSH and they both don't work and print back an atuhentication failed message. When trying with https address: git clone https://gitlab.com/project.aa/project.git Cloning into 'frontend'... remote: HTTP Basic: Access denied fatal: Authentication failed for 'https://gitlab.com/project.aa/project.git' And with my SSH key that's the message I get: Cloning into 'frontend'... git@gitlab.com: Permission denied (publickey). fatal: Could

How can I get use cuda inside a gitlab-ci docker executor

好久不见. 提交于 2020-07-08 10:58:35
问题 We are using gitlab continuous integration to buildand test our projects. Recently, one of the projects added the requirement for CUDA to enable GPU acceleration. I do not want to change our pipeline (docker and gitlab-ci are working well for us), so I'd like to somehow give docker the ability to talk to an nvidia GPU. Additional details: Installing an nvidia GPU on our build servers is fine - we have some spare GPU's lying around to use for that purpose We are not using ubuntu or centOS, so

How can I get use cuda inside a gitlab-ci docker executor

青春壹個敷衍的年華 提交于 2020-07-08 10:58:33
问题 We are using gitlab continuous integration to buildand test our projects. Recently, one of the projects added the requirement for CUDA to enable GPU acceleration. I do not want to change our pipeline (docker and gitlab-ci are working well for us), so I'd like to somehow give docker the ability to talk to an nvidia GPU. Additional details: Installing an nvidia GPU on our build servers is fine - we have some spare GPU's lying around to use for that purpose We are not using ubuntu or centOS, so

How to specify in gitlab-ci.yml the memory for a job?

风流意气都作罢 提交于 2020-07-08 00:26:43
问题 I have a job that requires more memory than the default configuration to compile a large project. I use hosted shared runners. Is there a way to specify in gitlab-ci.yml the required memory per job ? 回答1: This feature is not currently available, and the development is being tracker in https://gitlab.com/gitlab-org/gitlab-runner/issues/2902 来源: https://stackoverflow.com/questions/60114468/how-to-specify-in-gitlab-ci-yml-the-memory-for-a-job