GitLab CI

分享我在前后端分离项目中Gitlab-CI的经验

自作多情 提交于 2020-10-24 00:43:41
长话短说,今天分享我为 前后端分离项目 搭建Gitlab CI/CD流程的一些额外经验。 Before Gitlab-ci是Gitlab提供的CI/CD特性,结合Gitlab简单友好的配置界面,能愉悦的在Gitlab界面查看管道执行流程,并自然流畅的推动敏捷开发流程。 Gitlab-CI/CD的核心是搭建Gitlab Runner、编写.gitlab-ci.yaml文件。 详细示例请参考:Gitlab CI/CD+ASP.NETCore. 本次前后端两个项目使用同一个Gitlab Runner(shell模式),前端项目的gitlab-ci.yaml构建Job如图: Round 1 单个Gitlab Runner可为多个项目提供构建服务 , gitlab-Runner register 命令只能接受一个注册token,当时为支持多个项目,花了不少冤枉心思倒腾Gitlab Runner. 你可以为注册的项目解锁Runner,这样Girlab Runner就可以为其他项目提供构建: Round 2 使用Runner缓存加快前端构建过程 大家都知道npm_module被前端开发者诟病为毒瘤, 而Gitlab runner执行每次构建job之前都会清场,pull/fetch指定的代码再执行job, 这就导致每次 build job会耗时很久(要拉取毒瘤)。 #!/bin/bash cd

[no_code][Alpha]事后分析

女生的网名这么多〃 提交于 2020-08-13 03:34:36
$( "#cnblogs_post_body" ).catalog() 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们要解决的目前的手写表单的电子化问题,办公电子化问题的一个key问题。定义十分清楚: 输入: 手写表单的照片或者其他电子格式的手写表单 输出:格式化的电子表单 具有详细的典型用户和典型场景分析,可以参考我们的[用户分析] 我们达到目标了么(原计划的功能做到了几个? 按照原计划交付时间交付了么? 原计划达到的用户数量达到了么?) 目标: 一个完整的OCR后盾 完成情况:初步完成 交付时间:初步完成 用户数量:52/50 达标 和上一个阶段相比,团队软件工程的质量提高了么? 在什么地方有提高,具体提高了多少,如何衡量的? 质量提高了,github pr的使用受到了助教和老师的表扬和支持。 用户量, 用户对重要功能的接受程度和我们事先的预想一致么? 我们离目标更近了么? 一致,我们现在距离beta目标更近了。 有什么经验教训? 如果历史重来一遍,我们会做什么改进? 要做OCR API技术调研 要做OCR技术分析 计划 是否有充足的时间来做计划? 其实很少,因为我们是敏捷开发 团队在计划阶段是如何解决同事们对于计划的不同意见的? PM:收集意见 两个组长:提供讨论和最终决策 组员:可以随时与组长以及PM讨论

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

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

.NetCore 配合 Gitlab CI&CD 实践

萝らか妹 提交于 2020-08-07 16:23:02
前言 上一篇博文 .NetCore 配合 Gitlab CI&CD 实践 - 开篇 ,主要简单的介绍了一下 GitLab CI 的持续集成以及持续部署,这篇将通过 GitLab CI 发布一个 .net core 项目,来带小伙伴们感受一下自动化的魅力,从此告别手动发布。 准备工作 创建一个空MVC项目来进行演示: mkdir hello-world cd hello-world dotnet new sln -n HelloWorld mkdir src cd src dotnet new mvc -n GitLabCIDemo cd ../ dotnet sln add .\src\GitLabCIDemo\GitLabCIDemo.csproj 完成以上创建后,用 vscode 打开应该是下面这个样子: 项目上传至 GitLab 在 gitlab 上新建一个 hello-world 的项目,将本地的项目上传。这个按照如下提示操作即可: 项目上传成功后,切一个 dev 分支出来,我这里的策略是,代码提交到 dev 分支是自动发布到开发环境进行验证的,生产环境是通过 master 分支打 tag 进行发布的。 切换到 dev 分支! 切换到 dev 分支! 切换到 dev 分支! 添加相关脚本 在 hello-world 文件夹内创建 .build/docker 文件夹

GitLabRunner和流水线的数据采集与监控

妖精的绣舞 提交于 2020-07-29 08:59:15
本文主要阐述如何配置GitLabRunner和GitLabCI/CD流水线的数据采集与监控。 1.1 配置GitLab Runner监控 GitLab Runner本地具有Prometheus指标,可以访问嵌入式HTTP服务器,通过 /metrics 路径公开。该服务器(如果已启用)可以被Prometheus监视系统抓取,或通过任何其他HTTP客户端进行访问。 公开的信息包括: Runner业务逻辑指标(例如,当前正在运行的作业数) Go特定的流程指标(垃圾收集统计信息,goroutines,memstats等) 常规指标(内存使用情况,CPU使用情况,文件描述符使用情况等) 这些指标是运维人员监视和了解GitLab Runners的一种方式。例如,您可能会对Runner主机上的平均负载和作业数量感兴趣。 Runner默认是没有开启内置的HTTP服务,可以通过两种方式配置指标HTTP服务器: 在 config.toml 文件中配置全局选项 listen_address 。 在Runner启动的时候添加 --listen-address 命令选项。 在这里我直接修改的 config.toml 文件,内容参考如下: $ cat config.toml listen_address = "[::]:9252" concurrent = 10 check_interval = 30 log

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

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

gitlab-runner 的 executors 之 docker

梦想的初衷 提交于 2020-05-09 15:59:04
gitlab-runner 的 executors 之 docker GitLab Runner 实现了许多执行程序,可用于在不同的场景中运行构建。所有执行程序分别为: SSH Shell Parallels VirtualBox Docker Docker Machine (auto-scaling) Kubernetes Custom 本文主要介绍 docker 执行程序: 两种不同的使用方式 踩过的坑 一些例子与经验 这是一个很好地选择。因为它可以提供一个干净的构建环境,项目所有依赖项都可以放到 docker 镜像中。同时,它还可以轻松创建具有依赖服务的构建环境,比如 MySQL。参考 https://docs.gitlab.com/runner/executors/README.html GitLab CI/CD 工作原理: https://docs.gitlab.com/ee/ci/introduction/index.html#how-gitlab-cicd-works 在 GitLab CI/CD 中构建 Docker 镜像: https://docs.gitlab.com/ee/ci/docker/using_docker_build.html 两种使用方式 docker-in-docker 文档: https://docs.gitlab.com/ee/ci

Git系列教程

孤者浪人 提交于 2020-04-13 08:18:14
【重学Git】整理提交记录 【重学Git】高级命令篇 【重学Git】基础命令篇 github pages与travis ci运作原理 用命令行撤销工作区的所有更改(修改文件&&新增文件) 配置Gitlab pages和Gitlab CI 谈下git的基本操作 出处: https://www.cnblogs.com/zhangnan35/category/1403332.html 来源: oschina 链接: https://my.oschina.net/u/4374260/blog/3231879

Artifactory & GitLab CI持续集成实践

时光毁灭记忆、已成空白 提交于 2020-02-26 05:08:32
GitLab CI支持创建多个构建,并评估 每次代码提交是否通过 测 试 和以及对您产品的影响 。在构建过程中,会生成大量二进制文件,如果不能 正确的 大规模管理这些文件,就会导致二进制文件 管理 混乱。为了克服这个问题,Artifactory被无缝地集成到 GitLab CI 构建过程中,以便 更好的 发布和管理这些二进制文件 , 并 通过JFrog CLI, GitLab CI 缓存、发布您的依赖包 、 制品包 和构建信息到Artifactory。 这篇文章描述了如何将 GitLab CI 与 Artifactory 集成在一起,不仅可以解析和部署二进制文件,还可以从 Artifactory 的 Build Integration 功能 中 获取更多帮助 。 将 Artifactory 与 GitLab CI 集成后,您可以存储和查看以下信息: 构建信息和发布的模块 使用的依赖 环境变量 许可证摘要 链接到您的 Jira issue 构建之间的差异 环境配置 安装Gitlab Runner 并 配置Gitlab ( 此处不再赘述 ) 准备一个示例项目 https://gitlab.com/guoyunzong/maven-example.git Artifactory 中创建仓库(2 local,1 remote,1 virtual):maven-dev-local、maven

gitlab的ci功能测试之旅

99封情书 提交于 2019-12-03 11:13:06
简述:gitlab ci ,依赖runner 来执行 Pipelines,Pipelines包含对多个阶段中job的定义。 第一步:安装runner curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash sudo yum install gitlab-ci-multi-runner 第二步:注册runner 需要两个东西 :私服地址URL 和 TOKEN,可以在gitlab项目的设置->ci/cd中找到 sudo gitlab-ci-multi-runner register 回车后按提示输出url 和 token 注意:通过gitlab-ci-multi-runner register注册的Runner配置会存储在/etc/gitlab-runner/config.toml中,如果需要修改可直接编辑该文件 注意事项:这里我自己对git-runner service 进行了 工作空间修改,这里要对注意一下新目录的权限问题 git-runner 配置详解 第三步:在 gitlab 私服配置ci/di配置文件 gitlab-ci.yml gitlab-ci.yml 官方详解 # 定义 stages