草庐IT

CI/CD 工具比较:Jenkins、GitLab CI、Buildbot、Drone 和 Concourse

介绍持续集成、交付和部署是旨在帮助增加开发速度并发布经过充分测试的可用产品的策略。持续集成鼓励开发团队尽早测试和集成其对共享代码库的更改,以最小化集成冲突。持续交付建立在此基础上,通过消除部署或发布过程中的障碍。持续部署则进一步通过自动部署通过测试套件的每个构建。虽然上述术语主要涉及策略和实践,但软件工具在帮助组织实现这些目标方面起着重要作用。CI/CD软件可以帮助团队自动推进新变更通过一系列阶段,以减少反馈时间并消除流程中的摩擦。在本指南中,我们将比较一些流行的免费开源持续集成、交付和部署服务器,旨在使协作软件开发更加简单。我们将看看Jenkins、GitLabCI、Buildbot、Dro

java - 使用Hudson中的Ant或其他CI工具自动 check out 并编译Eclipse项目的最佳方法?

我们有几种产品具有很多共享的代码,并且必须保持几个版本。为了解决这个问题,我们使用了许多Eclipse项目,一些包含库jar,一些包含共享源代码(在一些项目中,是为了避免获得具有大量依赖项的巨大堆,同时能够从头开始编译所有内容,以确保源和二进制文件是持续的)。我们使用projectSet.psf来管理这些项目,因为它们可以直接从CVS中提取所有项目并留下一个充分准备的工作区。我们不直接构建或使用Maven。现在,我们希望能够将所有这些项目及其各个版本放入一个ContinuousIntegration工具中(我喜欢Hudson,但这只是一个口味问题),这实际上意味着我们需要一种自动方式来

java - 如何自动化性能测试并与 CI 集成?

我正在考虑自动化性能测试,其方式与我们目前的单元测试相同。我知道如何使用jMeter等工具运行性能测试,或者通过编写自己的代码来触发应用程序的特定部分。我知道如何使用时间、jvisualvm、nmon或其他工具来收集有关正在使用的资源的信息。我想更进一步并编写一个性能测试,如果它超过某些线(执行时间、内存或CPU消耗...),它将失败。然后我会让我的CI服务器(Jenkins)定期运行测试以确保性能保持良好。这很复杂,因为性能取决于硬件,而以我目前的方式,它需要人工解释结果来决定这是否令人满意。您是否知道以这种方式帮助自动执行性能测试的任何工具或框架(如果可能的话,基于Java)?如果

带有AWS Lambda Python 2.7的枚举模块,与Travis CI一起部署

我在Python2.7中有一个从TravisCI部署的AWSLambda处理程序。但是,当我尝试运行该功能时,我收到了AWS的错误,说它无法导入枚举模块(ENUM34)。有没有简单的方法来解决这个问题?TravisCI是否应该包括Python正在运行的虚拟环境?如果没有,我该如何包括该Virtualenv?此外,当我从TravisCI部署时,它似乎会预先置入“索引”。进入Handler_name字段。有人知道为什么会发生这种情况,还是如何禁用它?我似乎找不到答案。看答案解决了。我将Python模块安装到项目根部的子目录中,而不是在项目根本身中。本质上是这样做的:pipinstall-rrequ

java - Travis CI 不使用 pom.xml 中提供的额外 Maven 存储库

我有一个基于Java的GitHub项目,fitnessjiffy-spring(我目前专注于“bootstrap”分支)。它依赖于从另一个GitHib项目构建的库,fitnessjiff-etl.我正在尝试将这两个配置为由TravisCI构建。不幸的是,Travis在处理基于Maven的Java项目方面不如Jenkins或Hudson成熟。Jenkins可以轻松处理项目之间的依赖关系,但Travis似乎不存在相同的概念。如果一个项目依赖于另一个项目,那么另一个项目必须已经在之前构建...并且它的Artifact上传到某个Maven存储库,第一个项目可以稍后下载它。我的“fitnessj

在初始配置之后更改gitlab ci multirunner executor

我正在阅读GitlabCI多室内文档它可以通过如何设置GitlabCI多室内执行人来走动,但是我似乎找不到有关最初设置的执行程序(在DOCS中或在线搜索)的任何内容。这受支持吗?看答案配置写入/etc/gitlab-runner/config.toml您可以使用自己喜欢的编辑器进行编辑,然后您需要重新加载或重新启动RunnerService。这是文档对于Gitlab跑步者config.toml文件。

VuePress + Travis CI + Github Pages 全自动上线文档

整体思路1.Github创建项目,本地创建切换到docs分支,通过VuePress构建文档项目(写一些文档),上传至Github。2.TravisCI自动clone后安装依赖、编译、上传至Githubmaster分支。3.通过GitHubPages功能将master分支上的内容展示在web上。相关资料:我的文档看下效果:https://codexu.github.io/我的文档远吗:https://github.com/codexu/codexu.github.ioVuePress中文文档(1.x):https://v1.vuepress.vuejs.org/zh/TravisCI:https

php - ci : google indexing address with index. php 但站点中没有与 index.php 的链接

我有一个由codeigniter编写的网站,我已经通过htaccess从地址中删除了index.phpRewriteCond$1!^(index\.php|resources|robots\.txt)RewriteCond%{REQUEST_FILENAME}!-fRewriteCond%{REQUEST_FILENAME}!-dRewriteRule^(.*)$index.php/$1[L,QSA]我的base_url()也将输出没有index.php的站点域所以我在网站上的所有链接都没有index.php即:www.site.com/news/addwww.site.com/faq

.htaccess - 是否有一个 Nginx 环境变量相当于 Apaches 的 {ENV :REDIRECT_STATUS}?

当从Apache迁移到Nginx时,.htaccess文件中的某些规则必须“翻译”到Nginx配置文件中。一个我似乎无法解决的问题,一个例子是最简单的解释方式:请求http://www.domain.com/nginx被Apache内部重写为index.php?option=com_content&view=article&id=145现在我想阻止对index.php?option=com_content的直接请求,因此该页面只能通过http://www.domain.com/nginx按顺序访问以避免重复的内容。在Apache中,这是通过使用这些.htaccess规则实现的:#Che

运用 Argo Workflows 协调 CI/CD 流水线

ArgoWorkflows是一个开源的容器原生工作流引擎,用于协调CI/CD在Kubernetes中的运作。它以Kubernetes自定义资源(CRD)的形式实现,使开发人员能够创建自定义API对象,以兼容的方式扩展Kubernetes的功能。 选择ArgoWorkflows的原因ArgoWorkflows旨在运行于Kubernetes之上,而非虚拟机或云服务等其他平台。让我们用一分钟时间来强调一下使用Kubernetes作为ArgoWorkflows运行平台的优点和缺点。 ArgoWorkflows是以Kubernetes自定义资源定义(CRD)的形式实现的,它使你能够: 为工作流中的每个步