记一次完整的CI持续集成配置过程(.net core+Jenkins+Gitea)

Jenkins大家一定很熟悉。以前我也配过,这次的需求是当后台开发工程师向git server提交代码以后,jenkins服务器自动去抓取,然后编译,发布,我起初觉得这是个很简单的事情,应该半个小时搞定吧。

事实上,不但半个小时没搞定,我最后 折腾了三天,经历了38次失败,最终在第39次才完全配置成功。

把经历的过程写下来,供后来者参考,避免踩坑。

一、本次配置环境:

1.需求:
后端工程师提交代码->Push到Git Server(使用Gitea自已搭建)->经路由器映射触发内网Jenkins服务钩子->Jenkins 通过Git获得代码->编译代码 ->Copy 到Pub目录 ->通过 supervisorctl 重启发布新程序。

2.使用到的工具版本:
Gitea :自建Git代码服务器 部署在www.A.com服务器上
Jenkins 2.2.4.5 :CI 持续集成 部署在内网,通过路由器映射端口到内网,使Gitea获得钩子,触发事件
JenKins操作系统:CentOS 7
Dotnet Core 3.1

3.环境说明

二、配置过程

1.安装jenkins。这个网上教程太多了,就说了
2.在安装插件前,一定要把升级服务器中心配置为清华大学的镜像,不然大多数插件是装不好的,我就是在插件安装这里花了很多时间。

菜单 :
[Manage Jenkins]->插件管理->高级->升级站点:
设置为:

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

如果插件装不起,怎么办?我就是反复试,经常出现Time out的情况 。
反复试,终于装起了。
几个必须的插件:
[Generic Webhook Trigger]
这个插件不装,没法触发git push钩子。

[Git Parameter Plug-In]
如果你拉下来的代码分支是master,这个可 以不用管。而我们的是开发环境,git提供合并的代码 分支在dev上,所以一定要装这个插件,实现代码分支切换。话说这个插件我反复尝试了不下20次才装好, 不停的报网络超时啊....

3.插件装好了就是配置了
建项目,网上多教程。
我建的项目是:

This project is parameterized
图示:

mdev就是我要的分支,在git parameter创建的名字,在下面引用的时候,前面有个$符号

4.Gitea server 配置为:

其中的TOKEN值,就是代在jenkins中可以设定的Token

5.最后构建脚本为:

因为有多个nuget包服务器,我查了官方文档,要通过-s指定多个Nuget包管理器
dotnet restore -s LocalPackagPath -s https://api.nuget.org/v3/index.json
开始编译
dotnet build
进入编译后的目录
cd /var/lib/jenkins/workspace/ProjectName/src/ProjectWeb/bin/Debug/netcoreapp3.1

最开始用cp拷贝文件覆盖,一直报错,后来改用这个覆盖,完全没问题了
rsync -av --exclude=‘pub‘ --exclude=‘runtimes‘ * pub
使用supervisorctl重启服务,supervisorctl的教程网上到处都是,这里就 不提了。
supervisorctl restart all

配完了一看,其实挺简单的,不过这中间发生了太多的异常,包括网络超时、程序包管理无法正常获取影响了编译、cp拷贝文件报错等各个错误。好在一个一个都填我填平了。
最好配好了,还是挺有成就感 的。

原文地址:https://www.cnblogs.com/Wadereye/p/12495656.html

时间: 2024-11-25 01:24:30

记一次完整的CI持续集成配置过程(.net core+Jenkins+Gitea)的相关文章

GitLab CI持续集成配置方案

目录 1. 持续集成介绍 1.1 概念 1.2 持续集成的好处 2. GitLab持续集成(CI) 2.1 简介 2.2 GitLab简单原理图 2.3 GitLab持续集成所需环境 2.4 需要了解知识 3. 搭建GitLab持续集成环境(NET版) 3.1 环境搭建 3.1.1 基础环境搭建 3.1.2 Git安装 3.1.3 NuGet安装 3.2 相关配置 3.2.1 Git环境变量配置 3.2.2 PowerShell调用测试 3.2.3 GitLab-Runner下载 3.3 Git

简单搭建Gitlab CI持续集成环境

简单搭建Gitlab CI持续集成环境 简单介绍Gitlab CI的功能 从GitLab 8.X 开始,GitLab CI就已经集成在GitLab中,我们只要在项目中添加一个.gitlab-ci.yml文件,然后添加一个Runner,开启Runner,即可进行持续集成.而且随着GitLab的升级,GitLab CI变得越来越强大. GitLab Runner 在没使用过Gitlab之前,我也有一个困惑,到底Gitlab Runner是什么东西.它的作用是什么?</br>GitLab Runne

Artifactory &amp; GitLab CI持续集成实践

GitLab CI支持创建多个构建,并评估每次代码提交是否通过测试和以及对您产品的影响.在构建过程中,会生成大量二进制文件,如果不能正确的大规模管理这些文件,就会导致二进制文件管理混乱.为了克服这个问题,Artifactory被无缝地集成到GitLab CI构建过程中,以便更好的发布和管理这些二进制文件,并通过JFrog CLI, GitLab CI缓存.发布您的依赖包.制品包和构建信息到Artifactory. 这篇文章描述了如何将 GitLab CI 与 Artifactory 集成在一起,

如何用 Gitlab 一键实现 CI 持续集成?

背景 在目前快节奏生活已经成为社会风潮的大背景下,越来越多的互联网公司为了其应用产品能更快的掌控风向脉搏,抢占市场红利,需要更快速的应用产品开发上线,在市场的反馈下,不断的迭代新功能.在此需求下,持续集成,持续部署,持续交付被越来愈多公司所推崇,DevOPS文化的兴起,一方面是实践打破运维与研发的堡垒之墙,另一方面也是敏捷开发过程中的必要产物. 提高软件开发效能,快速迭代.快速试错,以及根据自己开发团队特点,使用怎样的技术手段,才能是软件开发效能最高,更为快速敏捷,以及怎样才能满足产品能在最短周

持续集成配置之Nuget

持续集成配置之Nuget Intro 本文是基于微软的 VSTS(Visual Studio Team Service) 做实现公众类库的自动打包及发布. 之前自己的项目有通过 Github 上的 Travis 和 Appveyor,这次主要是用 VSTS 来做的,对比 appveyor 和 vsts 上的持续集成,vsts 上微软把常用的工具和部署形式做了一个抽象,不需要完全自己写配置写脚本,一如 windows 的图形化操作界面,可视化操作,图形化配置. 定义 Build Pipeline

记一次MySQL8.0.17主从复制的配置过程

记一次MySQL8.0.17主从复制的配置过程 master配置my.ini(windows)/my.cnf(linux) 注意:在该mysqld节点下配置 server-id主机一定要和从机不一样, log-bin一定要开启后面的的mysql-bin为二进制文件的名 [mysqld] log-bin=mysql-bin server-id=1  slave配置my.ini(windows)/my.cnf(linux) 主要配置其他的可以采用默认的配置可以在mysql数据库中查看show var

Gitlab CI 持续集成的完整实践

本着公司团队初创,又在空档期想搞点事情,搭建了私有Gitlab的契机,顺便把持续集成搭建起,实现了对Python服务端代码的单元测试.静态代码分析和接口测试的持续集成.总体架构如下: 执行过程: 开发提交代码后,自动触发gitlab-runner拉取executor镜像执行单元测试,单元测试代码中包含上传测试结果到x-utest测试平台: 单元测试通过后,gitlab-runner拉取sonar-scanner镜像执行静态代码分析,分析结果评论在commit中或保存于sonarqube: 静态代

ci持续集成(转)

1.持续集成的组成 用 Ant 或 Maven 等工具建立的自动构建过程 一个代码存储库,比如 CVS 或 Subversion 一个 CI 服务器,比如 Hudson,但是 cron 作业也可以满足需要 们来详细讨论这些组件. 自动的构建 CI 过程会经常集成软件,这需要通过构建来完成.在 Java 环境中,Ant 是常用的构建平台.可以使用 Ant 可靠地自动执行编译.测试等任务,甚至可以执行软件检查和部署.在掌握了 CI 的所有组件之后,您会发现构建策略是成功的 CI 过程最重要的方面.如

Gitlab CI持续集成 - GitLab Runner 安装与注册

GitLab Runner安装 需要添加gitlab官方库: # For Debian/Ubuntu/Mint curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash # For RHEL/CentOS/Fedora curl -L https://packages.gitlab.com/install/repositories/runner/g