Jenkins 服务搭建以及自动化编译部署

安装环境:Ubuntu22.04

1.首先安装Jenkins
这是 Jenkins 的 Debian 软件包存储库,用于自动安装和升级。 要使用此存储库,请先将密钥添加到系统中,在服务器执行命令:

curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null

然后添加一个 Jenkins apt 存储库条目:
echo “deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/” | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null

更新本地包索引,然后最终安装 Jenkins:

sudo apt-get update
sudo apt-get install fontconfig openjdk-11-jre
sudo apt-get install jenkins

安装完成后查看

安装完成后,查看jenkins是否运行:

sudo systemctl status jenkins

active (running)表示正在运行,如果未运行,输入sudo systemctl  start jenkins 运行

2.配置Jenkins & GitLab  SSH 公钥
安装完成后,jenkins的web登录端口默认是 8080

在浏览器输入http://服务器IP:8080/ 即可访问到Jenkins web页面:

想要自动化编译GitLab 的代码,那还需要搭建一个Gitlab代码管理仓库,这个测试部已经搭建过了。我们需要做的就是在gitlab上传好代码,然后配置jenkins和gitlab的ssh key,

这样jenkins才能从gitlab clone到代码。

Jenkins服务器ssh key创建
安装Jenkins的服务器会自动创建一个jenkins的账号,现在我们切换到此账号:su jenkins,如果密码不对,需要先sudo passwd jenkins 设置密码。

输入cd,会自动到jenkins的家目录/var/lib/jenkins,

如果是新安装的jenkins 肯定没有创建过ssh key,我们执行ssh-keygen -t rsa 来创建,后面的提示一路回车即可。

创建成功后 cat .ssh/id_rsa.pub  ,复制如下SSH密钥到gitlab。
ssh-rsa xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx= jenkins@Super-Server-0

配置jenkins的SSH 公钥到GitLab
这一步操作是为了能让系统的jenkins用户拥有访问 gitlab 的权限

将复制的id_rsa.pub文件的SSH密钥粘贴到 红框3 的位置保存即可。

配置jenkins web的 凭证
1.首先登录到jenkins web,点击右上角的下拉键选择“凭据”

2.然后点击“全局”,

3.进入里层目录后点击“ Add Credentials”

4.然后类型选择“SSH Username with private key”,用户名固定填“jenkins”

5.最后勾上Enter directly,回到jenkins用户命令行,执行cat .ssh/id_rsa,获取Private Key,复制后粘贴到框里保存即可.

3.上传代码到GitLab
测试jenkins是否可以运行,需要先创建一个测试的代码仓库,或者使用现有的代码仓库。

登录到Gitlab后,点击右侧新建项目,创建一个空白的项目,

然后按照指示上传自己的代码,指示已经比较详细,按照步骤即可正确上传,

这里我测试直接上传OpenBmc的代码。代码push成功后,复制SSH的克隆地址,我测试的时候好像jenkins不能使用 http地址,可能与Gitlab的网址是纯IP有关。

4.创建Jenkins自动化任务
回到Jenkins页面,点击新建任务,

由于最终是为了构建OpenBmc,经过测试可以使用’Build Steps’ 的shell脚本来完成,所有这里选择自由风格的软件项目。

Configure 配置
源码管理-git的Repository URL 填入之前复制到GitLab 的SSH 克隆链接,填入自己的分支。

Build Steps 脚本示例

–Build Steps脚本

#!/bin/bash -e
#防止jenkins杀死启动的进程
BUILD_ID=DONTKILLME
. /etc/profile
export LANG=en_US.UTF8
cd $WORKSPACE/openbmc
source setup evb-ast2500
ln -s …/…/downloads downloads
bitbake obmc-phosphor-image -c clean
time bitbake obmc-phosphor-image

4.执行构建

构建完成后,可在控制台输出 查看log

参考
流水线 (jenkins.io)

jenkins/run-build-script-ci - 知乎 (zhihu.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1489214.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【漏洞复现】金万维-云联应用系统接入平台 GNRemote.dll 前台RCE

文章目录 0x00 漏洞描述0x01 测绘工具0x02 漏洞复现0x03 Nuclei检测脚本0x04 修复建议0x05 免责声明 0x00 漏洞描述 云联(AppCloud)是北京金万维科技有限公司的企业级私有云产品。 金万维-云联应用系统接入平台 GNRemote.dl接口存在远程命令执行漏洞&am…

电商数据精细化运营解决方案(18页PPT)

方案介绍: 电商数据精细化运营解决方案通过全面、深入的数据分析与应用,助力电商企业实现精细化管理和精准化营销,从而在激烈的市场竞争中脱颖而出。 部分方案内容:

CeoMax总裁主题最新3.8.1破解免授权版/WordPress付费资源素材下载主题

CeoMax总裁主题最新3.8.1破解免授权版,一套WordPress付费资源素材下载的主题,感觉这是做资源站唯一一个可以和ripro媲美甚至超越的模板,UI很美,功能也很强大,有想学习的可下载搭建学习一下,仅供学习研究借鉴…

几个小创新模型,Transformer与SVM、LSTM、BiLSTM、Adaboost的结合,MATLAB分类全家桶再更新!...

截止到本期MATLAB机器学习分类全家桶,一共发了5篇,参考文章如下: 1.机器学习分类全家桶,模式识别,故障诊断的看这一篇绝对够了!MATLAB代码 2. 再更新,机器学习分类全家桶,模式识别&a…

2024年SCI-莲花效应优化算法Lotus effect optimization algorithm-附Matlab免费代码

引言 本期介绍了一种基于自然行为的元启发式优化算法名为莲花效应优化算法Lotus effect optimization algorithm,LEA的元启发式算法。它将蜻蜓算法中的高效算子(比如蜻蜓在花授粉过程中的运动)与叶子上的水的自清洁特性(莲花效应)相结合,进行局部搜索操…

SSM学习9:SpringBoot简介、创建项目、配置文件、多环节配置

简介 SpringBoot式用来简化Spring应用的初始搭建以及开发过程的一个框架 项目搭建 File -> New -> Project 选中pom.xml文件,设置为maven项目 项目启动成功 可以访问BasicController中的路径 配置文件 在resources目录下 application.properties 默…

Docker快速搭建WordPress博客系统网站

WordPress 是一款广泛使用的开源内容管理系统(CMS),用于创建和管理网站和博客。 主要功能: 易于使用的界面:WordPress 提供了一个直观的后台管理界面,使用户能够轻松创建、编辑和管理网站内容。 主题和模板:WordPress 提供了各种主题和模板,可根据网站需求进行选择和自…

Java毕业设计 基于SSM和Vue的跑腿系统小程序

Java毕业设计 基于SSM和Vue的跑腿系统小程序 这篇博文将介绍一个基于SSM框架和Vue开发的跑腿系统微信小程序,适合用于Java毕业设计。 功能介绍 跑腿员 登录 注册 忘记密码 首页 图片轮播 校友动态 校友动态详情 任务 在线接单 任务订单 我的 我的收藏 联系客…

前端canvas——赛贝尔曲线

曲线之美,不在于曲线本身,而在于用的人。 所以就有了这期赛贝尔曲线。 新规矩,先上个GIT。 效果图 开局一张图,代码全靠编。 代码 画骨 先想着怎么画一个心形吧,等你想好了,就知道怎么画了。 首先就还…

找工作准备刷题Day8 二叉树 (卡尔41期训练营 7.22)

第一题:Leetcode235. 二叉搜索树的最近公共祖先 题目描述 题解1——递归法 class Solution { public:TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {if (root nullptr)return nullptr;if (root->val > p->val &&…

【Python】 ValueError: too many values to unpack 解决方案

【Python】 ValueError: too many values to unpack 解决方案 在Python编程中,ValueError: too many values to unpack是一个常见的错误,通常出现在使用解包操作时。本文将深入探讨这个错误的原因、解决思路、解决方法,并通过具体案例帮助大…

DLMS/COSEM中公开密钥算法的使用_椭圆曲线加密法

1.概述 椭圆曲线密码涉及有限域上的椭圆曲线上的算术运算。椭圆曲线可以定义在任何数字域上(实数、整数、复数),但在密码学中,椭圆曲线最常用于有限素数域。 素数域上的椭圆曲线由一组实数(x, y)组成,满足以下等式: 方程的所有解的集合构成…

fatal: refusing to merge unrelated histories

出现本地仓库和远程仓库的代码合并不兼容问题,解决方法: 添加--allow-unrelated-histories,让git允许提交不关联的历史代码。 成功提交:

Hive3:基本介绍

一、概述 Apache Hive是一款分布式SQL计算的工具, 其主要功能是: 将SQL语句翻译成MapReduce程序运行 Hive是单机工具,只需要部署在一台服务器即可。 Hive虽然是单机的,但是它可以提交分布式运行的MapReduce程序运行。 二、基本…

RocketMQ消息短暂而又精彩的一生(荣耀典藏版)

目录 前言 一、核心概念 二、消息诞生与发送 2.1.路由表 2.2.队列的选择 2.3.其它特殊情况处理 2.3.1.发送异常处理 2.3.2.消息过大的处理 三、消息存储 3.1.如何保证高性能读写 3.1.1.传统IO读写方式 3.2零拷贝 3.2.1.mmap() 3.2.2sendfile() 3.2.3.CommitLog …

22 Python常用内置函数——枚举

enumerate() 函数用来枚举可迭代对象中的元素,返回可迭代的 enumerate 对象,其中每个元素都是包含索引和值的元组。 print(enumerate(abcd)) print(list(enumerate(abcd))) # 枚举字符串中的元素 print(list(enumerate([hello, world]))) # 枚举列表中…

SQL 语句中的字符串有单引号导致报错的解决

1.问题 SQL 语句执行对象中,本内容的字符串内含有单引号导致查询或插入数据库报错, 例如 str 关键字 AND 附近有语法错误 2.解决 字符串中的 ’ → 替换 ”,则查询语句成功,故程式中要备注替换 单引号。

工厂数字化转型,该如何建设数字孪生车间?

在工业4.0的浪潮下,数字化转型已成为工厂升级的必然趋势,而数字孪生技术的引入则为这一转型注入了强大动力。智汇云舟作为数字孪生行业头部企业和视频孪生技术首倡者,以创新的视角和前沿的技术,为数字工业建设助力,给众…

大学计算机专业主要课程及概要介绍

大学计算机专业主要课程及概要介绍 大学计算机专业是一门涵盖广泛领域的学科,旨在培养学生在计算机科学与技术方面的理论知识与实践能力。该专业课程设置丰富多样,涵盖了从基础理论到高级应用的多个方面。以下是一些主要的课程及其概要介绍:…

Spring源码-从源码层面讲FactoryBean接口的使用

一般情况下,Spring通过反射机制利用bean的class属性指定实现类来实例化bean。在某些情况下,实例化bean过程比较复杂,如果按照传统的方式,则需要在标签中提供大量的配置信息,配置方式的灵活性是受限的。为此&#xff0c…