Questions tagged «continuous-integration»

2
Gitlab CI-通过SSH部署到远程服务器
我有一个使用Gitlab CI的Gitlab环境,用于一个新项目,以证明有关已编译文件并通过rsync复制到生产服务器。 执行这些资源的机器是docker(节点6)的映像,但是现在我必须使用Linux将那个容器Docker命令的结果文件复制到服务器上……我的问题是通过ssh通过rsync。 目前,我有以下内容: stages: - deploy before_script: - npm i - npm run build job_deploy: stage: deploy script: - ssh-keygen -t rsa -b 4096 -C '' -f ~/.ssh/deploy_rsa - ssh-keyscan -H 8.8.8.8 >> ~/.ssh/known_hosts - ssh-copy-id -i ~/.ssh/deploy_rsa.pub $SERVER_USER@8.8.8.8 - rsync -avuz $CI_PROJECT_DIR/dist/ $SERVER_USER@8.8.8.8:/var/wwww/example.com only: - master 由此我得到: /usr/bin/ssh-copy-id: …

1
Tomcat并行部署,自动取消部署旧应用程序
一段时间以来,我一直在使用Tomcat 8的并行部署作为零停机连续部署设置的一部分。 运行测试手套后,CI服务器会自动将.war文件重命名为application ## {version-number} .war并将war复制到/ webapp文件夹。应用程序## 333将与应用程序## 332很好地共存。 我遇到的唯一问题是,一旦所有流量(新会话)自动转换为新应用程序,我就必须手动取消部署旧应用程序。 Tomcat是否具有某种内置机制来表示“嘿,当该服务降为零会话时,应将其删除”?也许我可以利用某种“最近的会话刚刚过期”事件。 如果有人取消了这种应用程序的自动化,我很想听听。谢谢!

3
从GitLab Web钩子触发Jenkins构建以进行合并请求
我希望Jenkins(1.561)构建由合并请求Web挂钩触发的提交到GitLab(6.7.5)的合并(拉)请求。我有一个参数化的构建,以及Jenkins插件“ GitLab合并请求生成器”(1.2.0)和“ GitLab挂钩”(1.0.0)。不幸的是,迁移到Jenkins CI并不是一个现实的选择。 只要变量,和可用,合并请求构建器插件就可以构建合并请求。当插件轮询存储库本身时,或者当我使用手动有效负载(例如)触发构建时,这种方法效果很好,但是我无法通过钩子来完成。gitlabMergeRequestIdgitlabTargetBranchgitlabSourceBranchcurl --data "gitlabMergeRequestId=3&so_on http://server_name/job/$JOB_NAME/buildWithParameters 使用GitLab Hook插件,我能够在JSON有效负载中获取必要的数据,但是值具有“错误”键: gitlabMergeRequestId 是 id gitlabTargetBranch 是 target_branch gitlabSourceBranch 是 source_branch 我尝试使用GitLab合并请求生成器插件的要求配置构建参数,将Name变量值配置为Default Value。不幸的是(可能是有意的),Default Value字段中的变量没有被替换,因此Jenkins正在寻找具有id ${id}和类似分支值的合并请求。 我没有找到配置从GitLab发送的有效负载的方法,并且既没有GitLab Hook插件的配置选项,也没有GitLab Merge Request Builder插件使用的参数名称的配置选项。 我正在考虑编写一个小的PHP脚本,以在将其传递给Jenkins之前拦截并更改POST中的有效负载。尽管我确信这将奏效,但它显然似乎不必要地复杂。 我可以看到的唯一其他真正的选择是更改插件的来源,但这使升级它们成为PITA。 我是否忽略了一些显而易见的事情,或者真的没有一种更简单的方法来触发从GitLab到Jenkins的Web挂钩触发Merge Request构建?

4
确保“整洁的系统”持续集成服务的有效途径
我们想为我们的项目设置一个持续集成(CI)服务。CI服务应该控制项目生命周期的各个方面,包括部署。 也就是说,我们希望CI代理在每次迭代时都采用一个干净的系统(特别是Ubuntu Server),在其中部署我们的项目并运行测试。 我们可能会从头开始自己编写CI服务,因为我们的生态系统很不寻常。问题是:如何为每次CI迭代有效地提供干净的平板系统? 项目部署会安装一些Debian软件包,配置多个nginx站点,并在系统范围的特定于实现语言的软件包管理器(LuaRocks)中安装一些软件包。没有比这更令人讨厌的了(我相信)。因此,比起确保绝对的隔离和整洁,能够快速设置干净的平板(在现代硬件上在一分钟内,更快,更好)更为重要。 我看到两种方法来做我们需要做的事情: 要么设立某种监狱(例如lxc,也许)。 或安装一些可以做快照的虚拟机并使用它们。 但是目前我没有足够的信息来决定。 您有什么建议?还有其他选择吗?任何特定的工具名称? 注意:CI服务将在Citrix XenServer guest虚拟机中运行。如果价格合理,付费解决方案还可以。(通常,它们在该字段中不合理。)远程CI解决方案不可行。

6
什么是开发人员构建最快的文件系统?
我正在组装一个Linux盒子,它将充当持续集成构建服务器。我们将主要构建Java东西,但是我认为这个问题适用于任何编译语言。 我应该使用什么文件系统和配置设置?(例如,我知道我不需要花时间!)构建服务器将花费大量时间读取和写入小文件,并扫描目录以查看哪些文件已被修改。 更新:在这种情况下,数据完整性是低优先级;这只是一台构建机器……最终的工件将被压缩并存档在其他地方。如果构建机器上的文件系统损坏并丢失了所有数据,我们可以擦除并重新映像;构建将继续像以前一样运行。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.