在Windows上搭建配置Jenkins然后编译打包VS项目
在 Windows 上搭建配置 Jenkins 然后编译打包 VS 项目
独立观察员 2022 年 7 月 6 日
一、安装
1、下载并安装 JRE (Java 运行环境)。
2、下载 Windows 版本的Jenkins安装包并安装。
3、安装 Visual Studio,以供编译项目使用。
4、安装 Advanced Installer,以供打包项目使用。
二、Jenkins 配置
Jenkins 安装完成后,使用 IP 端口,在浏览器中可打开使用 Jenkins,如 http://192.168.70.150:8080/manage
Jenkins 的配置文件在其安装目录下,可修改其中一些配置(如数据存放目录),重启 Jenkins 后生效。
重启 Jenkins 的方法为:在主页地址后加 /restart 并访问,如下:
2.1、管理插件
首先在 高级 选项卡中可进行一些设置,如 设置代理、手动安装插件、设置升级站点:
一个可用的升级站点为 https://updates.jenkins-zh.cn/update-center.json
接下来介绍一些已安装的插件:
2.2、全局工具配置
可对一些插件进行配置,如下。
2.2.1、配置 Advanced Installer 安装路径
2.2.2、配置MSBuild路径
2.3、配置系统
有一些 Jenkins 的配置,一般无需更改。
也会有些插件的功能需要在这里配置,如下。
2.3.1 配置全局构建超时
2.3.2 配置时间戳
2.3.3SVN配置
三、构建项目编译任务
输入任务名称,选择 Freestyle project 即可,也可以使用复制功能:
下面以 MD96_Bugfix_MSBuild 为例,点击配置开始编辑:
3.1、设置 丢弃旧的构建
3.2、源码管理
源码管理选择SVN并配置相关信息:
其它的默认即可:
3.3、构建环境
3.4、增加构建步骤
增加构建步骤选择 Build a Visual Studio project or solution using MSBuild:
配置 MSBuild 的相关编译参数:
需要编译几个项目,就建几个步骤,不再赘述。
最后来一段拷贝文件的 bat 指令,步骤类型为 Execute Windows batch command:
如果会有 SVN Checkout 操作后产生冲突的情况,还可以再添加一个 Execute Windows batch command 的步骤,调用 SVN 命令行工具来进行还原:
四、构建打包任务
以 MD96_Package_Plugin 任务为例:
丢弃旧的构建和上一章一样配置;无需配置源码管理;构建触发器、构建环境等按需配置。
直接增加一个类型为 Invoke Advanced Installer 的构建步骤。
如果 Run Type 选择第一个,调用,则没有具体配置选项,应该就是唤起打包程序吧(未测试):
所以选择第二个,调用并构建项目,填入 aip 打包文件路径:
其余配置全部留空:
完成后点击 Build Now 即可开始构建。
五、简单使用介绍
5.1、运行
5.1.1、方法一
鼠标移到列表中相关任务右边,点击出现的下拉箭头:
在下拉列表中点击 Build Now:
5.1.2、方法二
点击列表中的某个任务,在打开的页面左侧点击 Build Now:
5.2、查看结果
开始构建后,左下角构建历史区会出现正在进行的构建,鼠标移上会出现下拉箭头:
点击下拉框中的 控制台输出 可实时查看输出,也可查看之前的构建的输出:
以下为打包任务正在进行的输出:
最终输出如下(有中文乱码,不影响):
感谢阅读!
投资理财
读书笔记
作品
利用 C 中的 FileSystemWatcher 制作一个文件夹监控小工具
使用 WPF 版简易 SIP 服务器向 GB28181 摄像头发送直播请求
下载中转加速器 VPSDownloader.NET(.NET Core 程序部署到 Linux 系统)
Windows
IIS 错误解决:当前标识没有对 Temporary ASP.NET Files 的写访问权限
搭建 Frp 来远程内网 Windows 和 Linux 机子
其它
在香蕉派的树莓派系统上配置 Syncthing 自启动(暨 Linux 软件自启服务配置)
使用 GB28181.Solution + ZLMediaKit + MediaServerUI 进行摄像头推流和播放
使用 Floccus 插件和坚果云同步Chrome类浏览器书签
可以从NODE_LABEL看到是openjdk-16,从JAVA_BASE_URL可以看到下载的是openjdk-8
从K8S登录到agent node执行如下命令:
kubectl -n devops get pods
NAME READY STATUS RESTARTS AGE
devops-jenkins-jdk8-maven36-jx76q 2/2 Terminating 0 11s
devops-jenkins-jdk8-maven36-qn6p1 2/2 Terminating 0 21s
jenkins-0 1/1 Running 0 19d //jenkins主节点
openjdk-16-hs0w6 2/2 Running 0 1s //单独起的openjdk-16
kubectl -n devops exec -it openjdk-16-hs0w6 sh
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
Defaulting container name to openjdk-16.
Use kubectl describe pod/openjdk-16-hs0w6 -n devops to see all of the containers in this pod.
sh-4.2 java -version
openjdk version "16.0.1" 2021-04-20
OpenJDK Runtime Environment AdoptOpenJDK-16.0.1+9 (build 16.0.1+9)
OpenJDK 64-Bit Server VM AdoptOpenJDK-16.0.1+9 (build 16.0.1+9, mixed mode, sharing)
我们可以看到内置的java版本确实是openjdk-16的。
二、查找原因
首先我先看看是不是在我的agent oepnjdk-16 Node上执行的。我做了如下操作:
- 在Jenkins file中任意流水线步骤添加如下命令
K8S环境不同JAVA版本Jenkins编译构建实战
当前容器化已经非常普及,无论是应用还是运维工具,绝大部分都已经官方支持容器化。而随着容器化的到来,一些新的问题也随之到来。例如:
下一篇
Buildmasters是由Inedo研发的Jenkins替代品,它可以使开发者把软件发布到任何环境。该工具为不同的平台提供持续集成功能,使组织可以创建自己的软件发布管理平台。团队可以处理自己的应用程序,并独立部署到其环境中。
不仅如此,它还可以防止发布未经测试的软件。用户对它的简单性感到非常满意。
https://inedo.com/buildmaster/download
2. Microtica
Microtica是一个DevOps自动化工具,涵盖了整个软件交付过程,从构建云基础架构到使用Kubernetes向云交付应用程序和服务。Microtica的即用型( ready-to-use )组件为用户提供了可重复使用的代码段,并且可以帮助你在几分钟内创建基础结构。
借助微服务生成器,开发人员可以自动创建微服务。借助集成的Kubernetes仪表板,他们只需单击几下即可创建可扩展的应用程序。
Microtica的流水线定义了每个组件和微服务的工作流程。用户可以随时自动或手动触发它们,以大致了解其构建过程。他们可以执行所有操作,而无需离开Microtica Web门户,每次更改都会有Slack通知。
最后,Microtica允许开发人员自动化设置其睡眠周期,从而降低AWS成本。一旦他们激活了节能模式( saving mode ),Microtica就会自动运行并防止过度支出。而且,所有节省都可以在节省成本的仪表板上找到。
https://microtica.com/
3. GitLab
GitLab是基于云的CI平台,可让开发团队更有效地处理其多样化的工具。它使组织可以通过集中式的版本控制系统安全的计划,构建和管理代码。此外,GitLab使用户能够使用Docker和Kubernetes来处理组件,处理容器以及打包应用程序和依赖项。
GitLab易于集成。但是,它有时可能会有一些烦人的错误和局限性,以及在实现完全自动化方面缺少一些功能。
https://about.gitlab.com/
4. CircleCI
Circle CI也是Jenkins替代产品之一,可在任何环境(例如Python API服务器或Docker集群)中运行。Circle CI工具消除了漏洞并增强了应用程序的一致性。它支持多种语言,例如C ++,NET,JavaScript,PHP,Ruby和Python。此外,当触发新的构建时,可以自动取消排队和正在运行的构建。它可以与GitHub,GitHub Enterprise和Bitbucket集成。
根据TrustRadius上的用户称,CircleCI的最大优势是自动化构建,但是有时流水线作业可能会花费很长时间。
https://circleci.com/
5. Bamboo
Atlassian的Bamboo是一款持续集成的服务器,可自动在一个地方创建,监视和发布。它可以轻松地与JIRA应用程序和Bitbucket集成。而且,Bamboo与Docker,Git,SVN和Amazon S3存储集成。
Bamboo根据在存储库中检测到的更改,它可以触发Bitbucket的构建并推送通知。它既可以托管,也可以本地部署。
使用者说Bamboo的构建过程的可见性很好,但是一些概念和集成尚不清楚。
https://atlassian.com/software/bamboo
6. TravisCI
TravisCI是一项持续集成托管服务,开发人员可以使用它来开发和验证GitHub和Bitbucket托管的应用程序。它可以测试所有请求,以确保不会发布未经测试的代码。你只需登录GitHub,即可设置你的项目,包括数据库。
TravisCI非常适合一个小型项目,并且构建速度很快。但是,当你有一个较大的项目需要照顾依赖关系以及构建的性能时,可能会遇到一些问题。
https://travis-ci.org/
7. Semaphore
Semaphore是Jenkins替代产品之一,支持GitHub,Kubernetes,iOS,Docker,Kubernetes的整个CI/CD流程,并且预先安装了100多种工具。
Semaphore可以使任何持续交付流水线自动化,支持可自定义的阶段,还可以并行执行,管理三方依赖等。
Semaphore构建非常快,平台也易于设置。但是,用户说UI有时会令人困惑,并且持续部署的功能有限。
https://semaphoreci.com/product
8. Buddy
Buddy是一个CI/CD平台,可通过简单的UI/UX减少配置和维护Jenkins的工作,从而使构建和部署应用程序变得非常简单。
都2021年了,你还在用Jenkins?赶快看看这些替代方案吧