
持续集成
文章平均质量分 77
xiaosongluo
这个作者很懒,什么都没留下…
展开
-
疑难杂症:Jenkins Slave/Node 执行权限问题
文章目录Ubuntu Slave/Node 用户权限更换后不生效的问题通过 Jenkins pipeline 中 agent 使用docker node时默认无root权限问题Ubuntu Slave/Node 用户权限更换后不生效的问题一句话总结:Ubuntu Slave/Node ,在宿主机上更改了用户权限,必须停止 Stop/Shutdown + 启动 Start(重启 Restart 不生效!) Jenkins Master 用户权限更换才能生效相关链接:https://stackoverf原创 2020-05-28 11:31:35 · 2128 阅读 · 0 评论 -
Nginx 反向代理 Jenkins 的配置方法
文章目录Nginx 中 jenkins-site.conf 部分的配置解决 Windows JNLP slaves 无法通过 Nginx 连接 Jenkins 的问题Nginx 中 jenkins-site.conf 部分的配置 location ^~ /jenkins/ { proxy_pass http://localhost:8080; sendfile off; proxy_set_header Host $host:$server_por原创 2020-05-25 12:45:51 · 1493 阅读 · 0 评论 -
Jenkins Plugin 基础开发入门
引子:Jenkins 是目前阶段各大公司运用持续集成的主要轮子,而 Jenkins 能否发挥如此神威的主要原因即在于其众多的 Plugins 可以快速实现定制化需求。笔者因工作需要,体验了一把从零入门 Jenkins Plugin 开发。现把经验总结形成本文。原创 2016-08-29 19:44:42 · 10074 阅读 · 1 评论 -
Jenkins REST API 使用指北
作为持续交付开源工具中最出名的一个,Jenkins在业界使用范围很广。但笔者了解到绝大多数使用者都在考虑将 Jenkins 作为其持续交付系统的一个组件来使用,而恰好 Jenkins 也提供了强大的 REST API。因此,了解清楚 Jenkins REST API 的来龙去脉并使用好它,是一件至关重要的事情。原创 2016-10-12 14:43:59 · 17798 阅读 · 7 评论 -
Jenkins Plugin 编写过程中遇到的一些坑(持续更新中)
BuildWrapper.Environment.buildEnvVars模块: BuildWrapper使用频率: 高此处坑点: BuildWrapper.Environment 中的 buildEnvVars 方法需要注意的是它可能会在 builder 中被多次调用。例如,每一次使用 Execute Windows Batch Command 插件时都会调用 buildEnvVars 来获原创 2016-10-22 19:23:19 · 1499 阅读 · 0 评论 -
摸索 Jenkins 的自动维护方案
我们大多会选择 Jenkins 来部署我们的持续集成/测试/交互系统,但是当我们需要做 Jenkins 相关服务的维护时可以怎么做呢?笔者摸索了如下的一些方案:基础方法——Jenkins Script ConsoleJenkins Script Console 是 Jenkins 设计来在 Jenkins Server 或者 Slave Nodes 上执行任意的 scripts的。原创 2017-01-15 19:16:11 · 2507 阅读 · 0 评论 -
Jenkins Pipeline 常用操作
Jenkins Pipeline 常用操作原创 2017-09-13 18:08:51 · 2558 阅读 · 0 评论 -
基于 Jenkins 实现 Gogs 的 Pull Request 自动构建
0x00 这玩意儿是啥首先我们要弄清楚 Pull Request 自动构建是啥,就需要分别说清楚 Pull Request 的意义以及 Pull Request 自动构建的意义:Pull Request 的意义:开发人员通过发出 Pull Requests 请求他人将自己贡献的代码拉下来进行代码审查,从而让自己贡献的代码可以顺利合并到代码仓库的指定分支。Pull Request 自动构...原创 2018-04-30 19:46:01 · 6776 阅读 · 7 评论 -
30分钟让你明白怎么使用 Conan 进行 C++ 包管理
0x00 Conan 是啥Conan 与 C++ 的关系可以用以下内容作类比: - Maven 之于 Java - pip 之于 Python - npm 之于 Node.js - gem 之于 Ruby0x01 为啥要用 Conan分两个层面来说:C++ 包管理工具在所有方案中比较“中庸” 方案 例子 构建速度 版本管理能力 易用性...原创 2018-09-04 15:41:30 · 18969 阅读 · 0 评论 -
Conan 中的“包”概念
Conan 作为 C++ 包管理软件,最重要的功能就是“包”,因此我们需要仔细看看其包管理的基本概念。定义:“包” 与 “二进制包”Conan 最主要的功能就是可以管理好预编译好的二进制文件用于后续打包。关于“包”这里有两层定义:“包”(package recipe)、 “二进制包”(binary package)。 区别 “包”(package recipe) “...原创 2018-09-11 14:33:09 · 1760 阅读 · 0 评论 -
《程序开发人员测试指南:构建高质量的软件》读后简记
关于敏捷测试四象限(或称测试四象限)有人对此名称持反对意见,不过还是很认可其对于测试技术的划分,它是一个“通用的软件测试策略”的描述,也可以说,它是一个自动化测试的整体策略的描述,可以帮助测试人员更好地理解:哪些测试更适合自动化测试?哪些测试更适合手工测试?哪些测试需要手工测试和自动化测试结合起来?测试工具在哪些测试中发挥主导作用?该方法从两个维度划分测试技术价值:指导开...原创 2018-11-16 00:29:47 · 708 阅读 · 0 评论 -
Golang 项目通过 gitlab-ci 接入 Sonar
在 《The Continuous Delivery Maturity Model》中,着重强调了 report 在 CI/CD 中的重要性,而且特别提到了要求做到做到历史 report 趋势的分析。gitlab-ci 由于本身设计的原因很难实现这些,我们必须借助三方软件的力量,例如 Sonar。使用Docker镜像将整个过程拆分为 Golang 数据分析以及 SonarCube 上报两个阶段...原创 2018-12-03 23:26:47 · 2115 阅读 · 0 评论 -
【性能看板】Logkit + InfluxDB + Grafana- 开源时序数据看板解决方案
文章目录Logkit + InfluxDB + Grafana 性能看板解决方案Logkit:数据采集InfluxDB:数据持久化Grafana:数据可视化Logkit + InfluxDB + Grafana 性能看板的优缺点分析优点缺点Logkit + InfluxDB + Grafana 性能看板解决方案这里借用 Logkit 的一张图片简单说明三者之间的关系:如上图所示,Logki...原创 2018-11-20 23:17:23 · 2301 阅读 · 2 评论 -
【性能看板】Octopus- 腾讯自研性能看板解决方案
文章目录渊源Octopus整体方案数据协议前端展示Octopus 性能看板的优缺点分析优点缺点渊源笔者在腾讯工作时,曾参与自动化测试平台 UTP 的研发,由于 UTP 使用了 内部自研项目 Octopus(八爪鱼)平台作为整个 UTP 性能报表的解决方案,因此笔者对于 Octopus 的使用还算熟悉。由于该项目由他人维护,因此细节方面本人肯定不甚了了,且时隔多日该项目是否有新的进展也不甚清楚...原创 2018-11-21 16:25:50 · 1321 阅读 · 0 评论 -
【性能看板】Catapult- Chromium性能看板解决方案
文章目录Catapult 性能看板 = Telemetry + Performance DashboardTelemetry:自动化测试框架设计原则代码概念测试自动化数据收集Performance Dashboard:图形化性能看板数据协议前端展示策略Catapult 性能看板的优缺点分析优点缺点Catapult 性能看板 = Telemetry + Performance Dashboard...原创 2018-11-20 00:52:19 · 1512 阅读 · 0 评论 -
实战:解决C++ AI引擎代码仓库难以维护的问题
0 背景我们团队目前主要负责研发 AI 引擎(主要用 C++ 实现),简单说来就是将算法 SDK 及模型进行封装,对外提供统一的接口方便后续的应用开发。相信有这类工作的经历的人都会明显感觉到有如下特点:对外接口基本不变算法 SDK 版本多:CPU/GPU,X86/ARM…算法模型更多:1.0,2.0,3.0…还不算麻烦,关键是还有各种组合模型比如 1.0+2.0,1.0+2.0+3.0...原创 2018-12-18 14:13:53 · 546 阅读 · 0 评论 -
推荐的源码管理策略-gitlab flow
文章目录0x00 写在前面0x01 gitlab flow 推荐的做法1. 基础:功能驱动式开发 & 在 feature 分支中进行问题跟踪2. (线上)持续发布项目建议使用的 gitlab flow3. (线下)版本发布项目建议使用的 gitlab flow4. gitlab flow 的实践要点0x02 git flow 与 github flow 的缺点1. git flow 的缺点...原创 2019-01-28 12:49:33 · 2374 阅读 · 0 评论 -
实战:GitLab 上C++项目实现自动化构建
文章目录Step 1:实现C++构建Step 2:实现自动化确定目标:使用 gitlab-ci 实现选择 GitLab Runner 的最佳实践方案:GitLab Runner on Kubernetes设计项目自动化流程:掌握 .gitlab-ci.yml基本语法Step 3:引入业界常用的功能模块加速编译-ccache静态代码分析-cppcheck构建产物持久化-JFrog BintrayS...原创 2019-02-21 17:15:59 · 5914 阅读 · 3 评论 -
Linux 内存 swap 相关知识学习笔记
1. Linux 中 swap 的作用1.1 Linux 使用虚拟内存定义来简化应用使用内存的逻辑在 Linux 中,内核使用虚拟内存技术,使每个应用程序均认为自己拥有独立且连续的可用的内存空间(一段连续完整的地址空间)。但是在实际上,实际内存空间通常使被映射到多个不同的物理内存段中,甚至还可能有部分内容暂时存储在外部磁盘存储器上,在需要时再加载到内存中来。那么,实际的内存段存在多种类型,和...原创 2019-04-19 17:08:57 · 313 阅读 · 0 评论 -
ansible 在 GitLab CI 中使用的最佳实践
最佳实践要点使用官方 Docker 镜像使用环境配置的方式更改配置,即在 variables 中更改 ansible.cfg 设置Inventory 文件放置在本地,通过 -i 进行指定样例写法prod: stage: deploy image: ansible/ansible:ubuntu1604 variables: ANSIBLE_HOS...原创 2019-08-28 16:14:13 · 1127 阅读 · 0 评论 -
【速度与质量】敏捷团队快速交付高品质软件的经验与教训:导读
文章目录1. 哲学终极三问1.1 这是个啥?1.1.1 主题1.1.2 包含的内容1.2 素材来自于哪?1.3 写这个的目的是啥?2. 目录及链接(后续更新+持续更新)1. 哲学终极三问据说,西方哲学有三大问题:我是谁?我从哪里来?我到哪里去?思考这个问题的答案,可以让人跟清楚的认识自己。因此,我试图为这个系列文章回答上述三个问题,方便他人快速了解其概要。1.1 这是个啥?系列文章写作...原创 2018-11-14 00:32:00 · 346 阅读 · 0 评论