Jenkins之Windows中构建Core项目
2021/10/7 7:11:22
本文主要是介绍Jenkins之Windows中构建Core项目,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- 一、配置项目
- 1、新建项
- 2、添加任务名
- 3、选择自由风格
- 3.1、添加任务基本信息
- 3.2、源码管理
- 3.3、添加仓库地址
- 3.4、添加仓库凭证
- 方式一、用户名和用户密码
- 方式二、使用`ssh key`
- 3.5、环境构建
- 3.6、构建
- 3.7、测试指令
- 4、`ssh` 远程发布
- 4.1、安装插件
- 4.2、系统配置
- 高级配置
- 4.3、项目添加配置
- 默认用户目录
- 非默认目录
- 二、参考链接
一、配置项目
1、新建项
2、添加任务名
3、选择自由风格
3.1、添加任务基本信息
3.2、源码管理
如果明白对应源码管理的用途,可以选择点击,截图中的帮助图标,有对应层级的基本信息描述。
选择 Git
3.3、添加仓库地址
本地创建一个Asp.net Core WebApi
项目,并添加到源码代码管理中,并推送到远程仓库中,获取git
地址https://gitee.com/guanguanchangyu/EXEGGCY.git
,添加到项目中,出现如下提示:
Failed to connect to repository : Command "git.exe ls-remote -h -- https://gitee.com/guanguanchangyu/EXEGGCY.git HEAD" returned status code 128: stdout: stderr: Logon failed, use ctrl+c to cancel basic credential prompt. remote: [31mUsername for 'https: Incorrect username or password (access token)[0m fatal: Authentication failed for 'https://gitee.com/guanguanchangyu/EXEGGCY.git/'
3.4、添加仓库凭证
方式一、用户名和用户密码
具体填写内容
选择凭证,如果账户的用户名和密码输入正确,源码管理仓库将不在提示上述错误信息
方式二、使用ssh key
本地通过ssh-keyagen
生成证书公钥
和私钥
后,将本地生成的公钥,添加到线上的个人公钥
或仓库公钥
中,细节操作自行搜索,添加成功后,本地在对应的项目中配置的源码管理
部分进行操作处理,选择凭证添加
用户名和标识按实际需要进行填写,不用非得和git的账户一致
add
添加的是本地生成的私钥
内容
如果构建凭证时设置了密码,则需要在Passphrase
输入框中添加对应的密码,保存成功之后,就可以进行选择
注意:对于gitee
来说,目前默认不支持(2021-8-18
)建立的私有仓库由jenkins
使用ssh key
方式进行远程访问
个人私有创建的gitea
可以正常使用,特此提示,避免读者躺坑。
3.5、环境构建
当前项目为Core
项目并未涉及。
3.6、构建
输入如下指令:
dotnet restore dotnet build
如下图:
3.7、测试指令
保存配置,跳转到当前任务首页,选择Build Now
进行指令测试
查看构建历史
点击最新记录,查看详情
查看控制台输出,可以看到当前输出页面和实际日常开发过程中,指定dotnet
指令进行项目的restore
和build
基本保持一致
那是否也存在对应的项目工作目录?
是的,该工作目录,在任务信息首页中,叫做工作空间
,也就是上图控制台输出
的执行路径,在项目首页中可以进行查看
C:\Windows\system32\config\systemprofile\AppData\Local\Jenkins\.jenkins\workspace\ynkenginemap
就是将远程仓库克隆下来的本地目录,打开对应目录如下:
运行过程中,执行的指令都在当前目录下执行,那发布项目也同样如此。
执行指令dotnet publish
,参考:指令信息,此处直接切换目录到JenkinsDemo
下,执行发布指令,发布文件默认输出到bin\Debug\netcoreapp3.1\publish
保存后,查看运行测试效果:
运行成功后,查看工作空间
,以下表示项目已经正常生成。
4、ssh
远程发布
4.1、安装插件
通过ssh
访问远程主机,需要为Windows
系统的主机安装Open SSH
,防火墙开放22
端口,本地Jenkins
安装插件安装publish over ssh
插件,安装后重启Jenkins
服务。
查看任务中构建后操作
,可以看到多出选项Send build artifacts over SSH
选项,则表明安装成功。
需要的配置相关配置,如果用户为首次使用,则需要转到首页,选择 系统配置添加对应的 SSH
发布配置,首页如下:
4.2、系统配置
在System Configuration
-Configure System
-Publish over SSH
中,配置一个远程ssh
连接配置,
各个输入框,用途如下:
Passphtase 对应用户私钥的文件加密秘钥,默认可以是空,依据实际情况考虑是否填写。 Path to key 用户实际私钥所在文件的绝对或者相对路径,与 Key 考虑二者选择一个即可。 Key 用户私钥对应的实际内容,与 Path to key 二者选择一个即可。
配置 SSH
服务地址:
输入框内容用途如下:
Name 当前 SSH 服务端配置记录的名称,用于做为记录的唯一辨识,尽量不要重名。 Hostname 一般为服务端所属的 IP,其他端口需要通过 高级配置级进行指定。 Username 远程访问服务器时,提供的访问用户名,一般为服务端提前配置好的用户名。 Remote Directory 远程访问时,非默认访问路径时,需要用户依据实际需求进行指定(Windows仅仅适用于当前盘符)。
确认配置无误后,点击 Test Configuration
按钮进行测试。配置成功,测如上图返回结果为 Success
字样。
高级配置
高级配置中,支持通过用户名和密码进行远程访问,同时包含,需要访问的服务端ssh 端口为非22端口时的相关配置,以及代理相关配置操作输入项,此处不一一展开讨论。
SSH Server
配置无误后,点击保存即可。
4.3、项目添加配置
回到目标项目中,点击构建后项目,选择Send build artifacts over SSH
选项,效果如下:
上述转换 Transfers
输入内容用途如下:
Source files 需要上传的文件,可以使用匹配符号,具体查看官方文档。 Remove prefix 上传是需要移除的文件前缀,避免拷贝文件时,在服务端生成同样目录层级。 Remote directory 上传到远程服务器对应文件目录。 Exec command 用于在执行转换后,进行后续的指令操作,方便后续构建的处理操作。
其中可以使用,Jenkins environment variables
,具体可以查看本地地址 http://localhost:8060/env-vars.html/
,读者依据实际的部署端口,进行相关环境变量的查看。参考链接:https://plugins.jenkins.io/publish-over-ssh/
高级配置中,可以添加需要排除的文件,用于在转换过程中,排除上传的文件,**
表示全文本匹配。
笔者案例,填写如下:
确认无后,点击保存。回到项目页面,进行立即构建,查看项目控制台输出如下:
# 省略以上内容 C:\Windows\System32\config\systemprofile\AppData\Local\Jenkins\.jenkins\workspace\ynkenginemap\JenkinsDemo>exit 0 SSH: Connecting from host [LAPTOP-86GF4FKI] SSH: Connecting with configuration [localserver] ... SSH: Disconnecting configuration [localserver] ... SSH: Transferred 7 file(s) Finished: SUCCESS
通过 xshell
可以看到对应工作目录中,已经生成一个 jenkins
的文件目录,文件目录中,包含对应本地发布的项目文件。
C:\Users\ggcyuser>dir jenkins 驱动器 C 中的卷是 Windows 卷的序列号是 22DB-1BE1 C:\Users\ggcyuser\jenkins 的目录 2021/10/06 20:35 <DIR> . 2021/10/06 20:35 <DIR> .. 2021/10/06 20:35 168 appsettings.Development.json 2021/10/06 20:35 106,809 JenkinsDemo.deps.json 2021/10/06 20:35 9,216 JenkinsDemo.dll 2021/10/06 20:35 174,592 JenkinsDemo.exe 2021/10/06 20:35 20,016 JenkinsDemo.pdb 2021/10/06 20:35 311 JenkinsDemo.runtimeconfig.json 2021/10/06 20:35 555 web.config 7 个文件 311,667 字节 2 个目录 34,109,632,512 可用字节
此时,可能读者就会问,那如果需要远程访问的文件目录,并不是当前账户所在的根目录如何处理?
其实对于这个问题,分情况处理,主要针对远程账户默认用户目录与非默认目录。
默认用户目录
默认空间下的子级目录切换可以通过配置的 SSH Servers
进行处理,在配置 SSH Servers
就提到过如下输入字段:
Remote Directory 远程访问时,非默认访问路径时,需要用户依据实际需求进行指定(Windows仅仅适用于当前盘符)。
如果用户有实际需求,可以在当前字段中进行特定目录的目录配置,需要注意的是,目前笔者测试结果为通过 SSH Server
方式仅仅适用于当前Windows
服务端的所在盘符,跨盘符操作不支持。
此处为了方便,笔者选择非默认目录,设置为服务器中的目录 jenkins
,配置一个新的 SSH Severs
,具体内容如下:
项目配置中对应的 SSH Server
修改为当前配置好的 directoryserver
:
保存后,进行构建,控制台输出如下:
# 省略以上内容 C:\Windows\System32\config\systemprofile\AppData\Local\Jenkins\.jenkins\workspace\ynkenginemap\JenkinsDemo>exit 0 SSH: Connecting from host [LAPTOP-86GF4FKI] SSH: Connecting with configuration [directoryserver] ... SSH: Disconnecting configuration [directoryserver] ... SSH: Transferred 7 file(s) Finished: SUCCESS
非默认目录
虽然无法直接切换目录,但是可以考虑在文件上传后,通过指令方式,将上传的文件进行指定目录的拷贝,此时需要使用的到 Exec command
输入框,进行输入转换之后的文件其他处理操作。
当前指令xcopy /s /y jenkins "E:\Study\Servers\jenkins"
,表示拷贝并在目标文件夹文件存在时进行强制覆盖操作,在 xshell
中能够正常使用,保存后,进行 Build Now
,查看控制台输出结果如下:
# 省略以上内容 C:\Windows\System32\config\systemprofile\AppData\Local\Jenkins\.jenkins\workspace\ynkenginemap\JenkinsDemo>exit 0 SSH: Connecting from host [LAPTOP-86GF4FKI] SSH: Connecting with configuration [localserver] ... SSH: EXEC: completed after 201 ms SSH: Disconnecting configuration [localserver] ... SSH: Transferred 7 file(s) Finished: SUCCESS
上述为笔者对自定义构建项目的操作与技巧说明。
二、参考链接
[1]官方文档:
https://www.jenkins.io/zh/doc/
[2] 文件目录拷贝:
https://blog.csdn.net/ak47007tiger/article/details/95749419
[3] 远程OpenSSH
配置:
https://blog.csdn.net/qq_28806349/article/details/120624802
https://blog.csdn.net/qq_28806349/article/details/120626333
这篇关于Jenkins之Windows中构建Core项目的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法
- 2024-08-21【Linux】gnome桌面环境切换KDE Plasma
- 2024-08-19如何安装 VMware Tools (macOS, Linux, Windows)
- 2024-08-15Linux部署Scrapy教程:入门级指南