GitLab

SECoder使用GitLab来托管源代码。

用户

在创建用户时,GitLab的账号应该被自动创建。在登录SECoder后,可以自动登录GitLab。选择项目阶段结束时,用户会被加入相应的小组。

仓库

创建GitLab仓库的入口在主站项目管理——仓库管理。创建仓库时,系统会自动正确初始化GitLab代码仓库、SonarQube仓库以及应用容器(如果选择了启用部署)。

CI/CD

avatar

持续集成(Continuous Integration): In software engineering, continuous integration (CI) is the practice of merging all developer working copies to a shared mainline several times a day.(from wiki)

持续部署(Continuous Deployment): 持续部署的意思是将通过测试的代码直接部署到生产环境中。

持续交付(Continuous Delivery): Continuous delivery (CD) is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time. (from wiki)

持续部署和持续交付非常相似。但是与持续部署相比,持续交付要求人为选择发布的代码版本。

GitLab提供持续集成持续部署的服务,具体而言,开发者可以通过.yml文件描述代码的build、test、deploy过程,GitLab则通过此文件自动执行这些过程。

用户可以在根目录下添加.gitlab-ci.yml启用CI/CD功能。我们为常用语言提供了样例代码仓库,您可以在Explore Projects内找到。

每当用户向master分支commit或merge时,GitLab将根据.gitlab-ci.yml的设置对代码执行一个pipeline,触发一次CI/CD。

pipeline可以包括build、test、deploy过程,具体执行情况可以在CI/CD->Pipelines内看到,若有一个过程失败,之后的过程不再被执行。

对于持续部署的要求,请参考Deployer文档

如果您希望深入了解CI/CD过程(如希望修改样例代码的.gitlab-ci.yml),请参考GitLab官方文档

Issue

每个迭代过程中的需求都可以以Issue的形式提出作为任务。 在GitLab中,可以为每个Issue添加评论,而评论中有一些特定的语法,其中,要求使用/estimate来预估完成任务需要的耗时,使用/spend来记录实际完成的耗时,如/spend 1h30m表示耗时1小时30分钟。 特别的,GitLab中的时间追踪中,1d为8个小时,而1w为5d即40小时。 同时,Commit也可以通过在提交信息中提到Issue(如#1),来和Issue联系起来。