jenkins 构建分发

Jenkins基础教程(117)Jenkins构建分发器:Jenkins构建分发器:让你的构建任务“跑”遍全世界! 在软件开发团队规模与项目复杂度日益增长的今天,单机Jenkins在构建任务面前往往力不从心。本文将深度解析Jenkins构建分发器,揭秘其主从架构与分布式构建原理,并通过完整示例展示如何实现跨平台任务分发与动态并行构建,助你打造高效、弹性的CI/CD流水线,彻底告别构建瓶颈! 阅读详情

使用的工具及技术:

1、Jenkins安装、部署

2、JenkinsTFS配置 MSBuild配置

3、Jenkins分发程序(xcopy、Azure、net、PsExec、ServerManager)

   Jenkins官网下载地址https://jenkins.io/content/thank-you-downloading-windows-installer/#stable(Windows),下载安装后,可以访问http://localhost:8080/进行用户设置登录。

    系统管理--》插件管理:安装Team Foundation Server Plug-in和MSBuild Plugin。


         系统管理--》系统设置:配置tfs



         系统管理—》Global Tool Configuration:配置MSBuild




新建一个构建项目和简单配置



碰到的问题有:

1. Querying for remote changeset at '$/MData/SourceCode/MasterData3.0-Release/' as of 'D2017-05-05T05:50:40Z'...

Query returned no result!

原因是tfs工程路径错误

2.FATAL:com.microsoft.tfs.core.exceptions.TECoreException: 工作区 Hudson-MData-MASTER;hexiaoer 已存在于计算机MACBOOK 上。

原因是工程名称与TFS重名,需要修改Jenkins工程名称。

3.构建后出现error。

原因一般都是tfs上项目编译出现了问题,要先将源码在vs上编译通过,再构建。如果还是不行就要查看项目编译的MSBuild和Jenkins配置的MSBuild环境是否一致。

 

分发的核心代码(就是配置的Publisher.exe)有:

Net: (系统自带)

var info = new ProcessStartInfo()

{

Arguments= @" use \\10.2.13.23 "111111"/user:administrator",

FileName= "net.exe",

WindowStyle= ProcessWindowStyle.Hidden

};

var process = Process.Start(info);

process.WaitForExit();

process.ExitCode;

 

Xcopy:(系统自带)

var info = new ProcessStartInfo()

{

Arguments= @" D:\Deployment\Agent  \\10.2.13.23\C$\Deployment /E /I /R /Y",

FileName= "xcopy.exe",

WindowStyle= ProcessWindowStyle.Hidden

};

var process = Process.Start(info);

process.WaitForExit();

process.ExitCode;

 

PsExec:(需要下载,在目标服务器要有psexec服务运行,如果没有调用exe会没效果)

var info = new ProcessStartInfo()

{

Arguments= @" \\10.3.2.8 -u administrator -p qwe111! -cC:\Deployment\Agent.exe",

FileName= "PsExec.exe",//这里要指定exe的具体路径

WindowStyle= ProcessWindowStyle.Hidden

};

var process = Process.Start(info);

process.WaitForExit();

process.ExitCode;


 

Azure:

ServicePointManager.ServerCertificateValidationCallback= ValidateCertificate;(获取或设置用于验证服务器证书的回调。具体如何使用可以在网上找下)

varconnectionString = "DefaultEndpointsProtocol=https;AccountName=blob;AccountKey=8kR6NNeWdgp0oKtYMLN1K+nQFCR+bpF67dlNtInz9QePAOY9nOuCABSS*********==;EndpointSuffix=core.Chinacloudapi.cn";

var account = CloudStorageAccount.Parse(connectionString);

var client =account.CreateCloudBlobClient();

var container =client.GetContainerReference(ConfigurationSettings.AppSettings["MicContainerReference"]);

var blob =container.GetBlockBlobReference(ConfigurationSettings.AppSettings["MicBlockBlobReference"]);

 

// 上传压缩文件

using (varstream =File.OpenRead(appZipPath))//zip))

{

     blob.UploadFromStream(stream);

}

 

ServerManager:

var manager = newServerManager();

var pools = manager.ApplicationPools;

var pool = pools[name];

if (pool == null)

{

     // 创建应用程序池

     pool = pools.Add(name);

}

 

// 设置应用程序池

pool.AutoStart =true;

pool.Cpu.Limit =80;

pool.ManagedPipelineMode= ManagedPipelineMode.Integrated;

pool.ManagedRuntimeVersion= "v4.0";

pool.ProcessModel.IdentityType= ProcessModelIdentityType.SpecificUser;

pool.ProcessModel.IdleTimeout= TimeSpan.Zero;

pool.ProcessModel.Password= password;

pool.ProcessModel.UserName= userName;

pool.Recycling.PeriodicRestart.Memory= 0;

pool.Recycling.PeriodicRestart.PrivateMemory= 0;

pool.Recycling.PeriodicRestart.Schedule.Clear();

pool.Recycling.PeriodicRestart.Schedule.Add(TimeSpan.Parse("04:00:00"));

pool.Recycling.PeriodicRestart.Time= TimeSpan.Zero;

//pool.StartMode = StartMode.AlwaysRunning;

// 获取网站

var sites = manager.Sites;

var site = sites[name];

if (site == null)

{

//创建网站

site= sites.Add(name, target, port);

}

// 设置网站

site.ApplicationDefaults.ApplicationPoolName= name;

site.Bindings.Clear();

site.Bindings.Add("*:" + port + ":", "http");

 

代码调试通过后,开始用Jenkins构建,出现net链接失败问题,在代码调试是没问题的。

解决方法是修改Jenkins服务属性登录账户和密码,然后重启服务。


服务器上的代理程序一直下载不了微软云上的文件,需要联系网络的同事配置服务器可访问微软云。



图片复制太复制了,就没有一个一个上传。图片复制太复制了,就没有一个一个上传。
http://note.youdao.com/noteshare?id=3cbe8b3e0e5451dc0f117366b6a733af&sub=7C07125D1D99434C95AFCF929CC42923


图片复制太复制了,就没有一个一个上传。
Jenkins构建Android打包为apk并分发到远程服务器 继Jenkins构建java项目后来实现Jenkins构建Android。且基本环境与其一致。 文章目录一、Jenkins安装gradle插件二、安装gradle和Android SDK1.安装gradle2.安装Android SDK三、Jenkins系统配置1.全局工具配置gradle2.系统环境变量配置SDK四、构建任务1.新建任务2.配置构建参数3.配置url4.替换安卓签名文件路径5.配置gradle6.增加构建步骤分发apk包并更新数据库里的 apk版本信息五、构建常见问题 一、Jenki 阅读详情

相关推荐

使用Jenkins搭建iOS/Android持续集成打包平台

 背景描述 根据项目需求,现要在团队内部搭建一个统一的打包平台,实现对iOS和Android项目的打包。而且为了方便团队内部的测试包分发,希望在打包完成后能生成一个二维码,体验用户(产品、运营、测试等人员)通过手机扫描二维码后就能直接安装测试包。 该需求具有一定的普遍性,基本上所有开发APP的团队都可能会用到,因此我将整个需求实现的过程整理后形成此文,并且真正地做到了零基础上手,到手即飞

GY的的专栏 2163

Jenkins 创建自由风格、Maven类型和流水线类型的任务,进行项目拉取编译自动部署 (2)

Pipeline,简单来说,就是一套运行在 Jenkins 上的工作流框架,将原来独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排和可视化的工作。来自翻译自官方文档Pipeline 脚本是由 Groovy 语言实现的,但是我们没必要单独去学习 Groovy。Pipeline支持两种语法:Declarative(声明式)Scripted Pipeline(脚本式)Pipeline也有两种创建方法:在 Jenkins 的 Web UI 界面中输入脚本;创建一 个 Jenkinsfil

猎人在吃肉 1967

Excel曲线拟合实战:从基础趋势线到高级回归分析

本文系统介绍了Excel曲线拟合的完整工作流,从基础的散点图与趋势线应用,到利用Solver插件进行自定义高级回归分析。文章详细讲解了线性、多项式、指数、对数等六大常用数学模型的适用场景与选择方法,并强调了通过R²值、残差图评估拟合效果、避免过拟合与外推风险的关键步骤,帮助读者掌握从数据探索到预测评估的实战技能。

weixin_29280219的博客 536

Jenkins 构建

它的核心措施是,代码集成到主干之前,必须经过自动化测试,只要有一个测试用例失败,就不能集成。每种类型的构建都可以完成一样的构建过程与结果,只是在操作方式、灵活度等方面有所区别,在实际开发中根据项目需求来选择(PS:常用流水线类型,灵活度非常高)持续集成(Continuous integration,简称CI)指的是,频繁的(一天多次)将代码集成到主干。添加新的凭证,username写的root,因为我们是使用root用户生成的秘钥。系统管理 --> 凭据 --> 系统 --> 全局 --> 添加凭据。

weixin_46268997的博客 2968

CAB单片机开发指南

CAB单片机开发使用指南,IDE安装及烧录注意事项

Zoebuxiangtian的博客 1558

UNext:基于 MLP 的快速医学图像分割网络

有代码,可深入学习轻量级分割模型的论文切入点 UNet 及其最新扩展(如 TransUNet)近年来一直是领先的医学图像分割方法。然而,这些网络无法有效地用于应用中的快速图像分割,因为它们参数繁重、计算复杂且使用缓慢。为此,我们提出了 UNeXt,它是一种基于卷积多层感知器(MLP)的图像分割网络。我们以有效的方式设计了 UNeXt,其中包括早期卷积阶段和潜在阶段的 MLP 阶段。我们提出了一个标记化的 MLP 块,我们可以在其中有效地标记和投影卷积特征,并使用 MLP 来对表示进行建模。

Philo的博客 3942

TFS+Jenkins CI/CD

最近用Jenkins做持续集成部署的时候发现 TFS的插件已经过时,而我们公司源码管理是使用TFS管理的。之前用的方式都是轮询,这样会导致构建部署存在一定延时,怎么才能让git在合并拉取请求的时候通知Jenkins来构建和部署呢?接下来,我们一步一步的解决 1、安装插件(Generic Webhook Trigger Plugin) a、在首页我们点击Manage Jenkins b、点击Manage Plugins c、搜索插件 我这里...

daane_liang的专栏 1319

【自动驾驶学习笔记——Prescan和Simulink 学习笔记和问题记录(1)】

主要记录一些Prescan/Simulink 联合仿真出现的问题。

ly1336545868的博客 1465

jenkins的几种构建方式(定时构建、触发远程构建)

jenkins的几种构建方式(定时构建、触发远程构建)

有一种信仰叫海阔天空 8306

三种方法教你下载大模型到本地,总有一种适合你

本文主要介绍了下载大模型到本地的三种解决方案,希望能对同学们有所帮助。 文章目录 1. 场景/问题描述 2. 方案一:使用git 3. 方案二:镜像站 4. 方案三:高速下载工具(变体及自定义代码) 4.1 aria2 4.2 自定义代码

weixin_43178406的博客 17万+

AD22里面封装修改后,同步到PCB图里面

【摘要】本文介绍了Altium Designer 22中同步更新元件封装的三种方法:1)从PCB库直接更新:在PCB库面板右键选择"Update PCB With[封装名]";2)通过原理图标准更新:使用Design->Update PCB Document菜单;3)在PCB编辑器中验证更新:通过Tools->Update From PCB Libraries菜单。所有方法最终都需通过ECO(工程变更订单)确认变更,建议执行前仔细核对变更内容。这些方法适用于AD22及早期版本

whm128的博客 1762

Jenkins搭建 笔记总结

1. 什么是CI/CD(DI)? 2. 环境 安装部署 3. 搭建 GitLab服务器(ssh方式搭建) 4. 搭建 GitLab服务器(Docker方式搭建) 4.1 搭建Docker环境 4.2 docker容器 安装gitlab 5. GitLab 提交代码 6. Jenkins 配置Maven + Git自动构建jar包(第一步) 7. Jenkins 将jar包远程发送给其他服务器上并自动运行(第二步) 8. publish over ssh 配置 9. Pre Steps 通过SSH Publi

探索技术与实践的旅程,分享编程经验与工具使用心得,助力开发者提升技能。 2183

Neo4j LLM知识图谱构建器使用教程

是一个开源应用程序,旨在将非结构化数据(如PDF、文档、文本、YouTube视频、网页等)转换为存储在Neo4j中的知识图谱。该项目利用大型语言模型(如OpenAI、Gemini等)从文本中提取节点、关系及其属性,并通过Langchain框架创建结构化的知识图谱。

u013250861的博客 541

Jenkins + Git + fir 构建并分发 iOS 项目

项目的构建          准备工作我们都已经OK了,下面我们就可以创建一个新的任务用来构建我们的iOS项目,在Jenkins的主界面的左侧菜单点击“新建”,填写任务名称后,选择第一个“构建一个自由风格的软件项目”,如图: 点击OK按钮后进入到项目构建配置界面,如下图: 项目构建配置主要分:项目信息描述、源码管理、构建触发器、构建环境、构建、构建后的

kinglyl0120的博客 1261

第20期-英伟达笔试题型解析

英伟达作为AI领域的缔造者及硬件基石,是这几年最为炙手可热的公司。英伟达以其高性能GPU设计闻名,硬件工程师岗位的招聘通常包括笔试和技术面试,考察领域涵盖数字电路设计、处理器架构、嵌入式系统和信号处理等。通过搜索公开平台,收集了候选人的面试经历和相关技术问题,,通过分析公开平台收集的笔试面试经验,结合英伟达的GPU架构特点,整理出可能涉及的典型题目,并提供详细解析。 以下是基于英伟达(Nvidia)硬件工程师笔试题型的解析与总结,涵盖核心知识点、解题思路及案例分析。

启芯硬件的博客 746

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

jenkins 本地构建 分发到多台服务器

再本地构建要求成功之后 安装Publish Over SSH 插件 根据上图来添加 需要操作得服务器 提示一下 如果这里是 linux 系统 是没有任何问题得 我这里用得Windows 系统 上图 第一个留空 点击下边得 add 添加按钮 点击高级 我这里使用 用户名和 密码 链接 通过 ssh 远成链接操作 有个 test 测试按钮 点击 一下 如果 返回 success 成功 就表明 链接成功了 选择 我们建立并本地构建成功...

小河vlog 2136

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Centos上使用Jenkins配合Gradle进行Android APK构建和分发

Centos上使用Jenkins配合Gradle进行Android APK构建 很多时候,测试人员和后台人员需要我们将各个环境APK包发给他们进行测试和调试,但是呢,我们不是时时都能响应他们的需求。此篇博客的目的就是为了解决这种情况,将复杂麻烦的打包简单化,让每个人都能轻松的打出各个环境,各个版本的包。 JDK安装 Jdk的安装非常重要,Jenkins的安装和Android打包都需要用到。检查是否...

做最好的自己 1370

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【CI/CD·Jenkins篇】多节点构建:Agent 配置与任务分发策略

当团队规模扩大到几十个微服务、几十条流水线时,单个 Jenkins Agent 就成了瓶颈——构建排队、资源争抢、环境冲突。本篇讲清楚如何规划多节点构建集群,让构建任务高效分发到合适的 Agent 上。

分享技术应用、实践场景等,评论区开放技术难题讨论,共同成长进步。 344

iOS持续集成实战:Jenkins+蒲公英优化构建与分发

持续集成(CI)是现代软件开发的核心实践,通过自动化构建、测试和部署流程显著提升交付效率。在iOS开发中,由于Xcode工具链和证书体系的特殊性,传统手动构建方式面临环境依赖、证书管理、测试分发等典型痛点。Jenkins作为主流CI工具,配合蒲公英等企业级分发平台,可构建完整的自动化流水线。关键技术点包括:通过Keychain插件实现证书自动化管理,利用Xcode integration插件标准化构建流程,结合蒲公英API实现版本快速分发。该方案能有效解决Provisioning Profile配置错误、T

weixin_34150830的博客 437

jenkins打包成功后,把构建物传输给分发机,并远程执行分发机上的部署命令

使用Jenkins打包完成,也即完成了CI阶段的使命。后面需要做的事情,就是把jar包或者zip包传给分发机。最后,触发远程分发机上的shell命令,满足自动部署的需求。分发机的ip是192.168.10.50。

天草二十六 694

AUTOMATION DAY03(Jenkins项目管理 、 构建分发服务器 、 自动化上线 、 Ansible基础)

案例1:Jenkins项目管理 案例2: 构建分发服务器 案例3:自动化上线 案例1:部署Ansible 1 案例1:Jenkins项目管理 1.1 问题 本案例要求管理Jenkins项目,要求如下: 创建Jenkins项目 修改Jenkins项目配置 1.2 方案 实验环境准备(沿用DAY02的实验环境): 1)5台RHEL8虚拟机,主机名分别为develop、git、jenkins、web1和web2。 2)develop主机的IP地址为192.168.4.10,不需要配置网关和DNS。 3)git

m0_51627713的博客 170

jenkins~集群分发功能的具体实现

前一讲主要说了jenkins分发的好处《jenkins~集群分发功能和职责处理》,它可以让具体的节点干自己具体的事,比如windows环境下的节点,它只负责编译,发布windows的生态环境的项目;而linux节点主要负责和它相关的项目,如nodejs,.net core,java,php,python等等,你甚至可以做个mac节点,让它去编译打包你的IOS项目,听起来确实不错。 开始jenki...

weixin_34405332的博客 86

04Jenkins 构建后操作 -- Archive the artifacts

背景 Jenkins 构建完成后,在构建页面显示构建产生的文件,方便在需要时直接下载。这是分发最新应用程序的一个简便方式。 1.配置构建后操作 进入 Jenkins job 进入 job 配置 前往 “构建后操作” 点击 “增加构建后操作步骤” 选择 Archive the artifacts 2.指定文件路径 在 用于存档的文件中通过 正则表达式 可以指定...

lucky9322的专栏 3万+

[译] 构建、测试、分发!运用 Fastlane 与 Jenkins,完整的 iOS 持续交付指南

原文地址:Build it, Test it, Deliver it! Complete iOS Guide on Continuous Delivery with fastlane and Jenkins 原文作者:S.T.Huang 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m… 译者:talisk 校对者:ALVINYEH,rydensun iO...

weixin_33739627的博客 344
上一篇: IOC学习
下一篇: element ui table 特殊列头合并 (官方文档上无)
andycode
博客等级 码龄17年 12粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值