安装环境: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)