Jenkins构建并部署一个go语言项目

news2024/11/23 18:31:55

Jenkins安装

1、下载
安装java
[root@localhost ~]# yum install java-1.8.0-openjdk* -y
方式一:
#下载安装包
[root@localhost ~]# wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.249.1-1.1.noarch.rpm
#安装Jenkins
[root@localhost ~]# yum install jenkins-2.249.1-1.1.noarch.rpm -y
#启动
[root@localhost ~]# systemctl start jenkins

方式二:
#下载Jenkins源
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

安装认证Key

rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

安装JenKins

yum install jenkins

解锁Jenkins
[root@localhost ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
5bbc1a542bd24ac9a7ae93e62ddbf8f2
浏览器打开Jenkins网站(JenkinsIP:8080)----->把得到的代码粘贴jenkins网站

jenkins 插件管理

将压缩包移入服务器
解压
tar -xf plugins.tar.gz
并将压缩包内所有插件移入/var/lib/jenkins/plugins
mv plugins/* /var/lib/jenkins/plugins

#切换至配置文件目录
cd /var/lib/jenkins/updates
#换源
sed -i ‘s/https://updates.jenkins.io/download/https://mirrors.tuna.tsinghua.edu.cn/jenkins/g’ default.json
sed -i ‘s/http://www.google.com/https://www.baidu.com/g’ default.json

加速插件下载速度

系统管理 -> 插件管理 -> 高级
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

配置Jenkins与gitlab免密登录

以上步骤保证jenkins服务器可以下载gitlab中的代码后,才可在jenkins中添加凭证

配置私钥登录
在这里插入图片描述
复制以上公钥,进入gitlab网站,点击右上角用户名-----》设置-----》ssh密钥-----》如下图添加即可
在这里插入图片描述
点击系统管理—>manage credentails—>jenkins—>全局凭据(unrestricted)---->添加凭据---->ssh username with private key----->描述随意,用户root,将jenkins的私钥粘贴进privatekey的输入框中---->点击确定
此时凭证就生成完毕

将git仓库url粘贴后,选择对应的凭证即可实现jenkins连接git仓库
在这里插入图片描述

构建一个go语言工程

新建任务—>输入任务名称—>点击构建一个自由项目—>点击确定保存
在这里插入图片描述
勾选参数化构建过程-----》选择git参数在这里插入图片描述
设置完参数,进入源码管理---->点击Git---->如下图所示
在这里插入图片描述
在构建中---->点击增加构建步骤----->选择执行shell----->cmd中填入以下命令(如下图)

#!/bin/bash
#切换标签或分支
git checkout $GIT_TAG
#cd /var/lib/jenkins/workspace/sleep_golang1/
#删除旧的构建容器
docker rm -f sleep
#运行新的构建容器(因为我要部署的服务器跟构建服务器架构不一样,所以需要用到docker,若部署服务器与构建服务器架构一致,关于容器的操作可以省略,只运行下面进入容器后的命令即可)
docker run -it -d --name sleep -v /var/lib/jenkins/workspace/sleep_golang1:/mnt sleep:v1 bash
#进入容器构建应用
docker exec sleep bash -c "cd /mnt/ && source /etc/profile && go mod tidy && go mod download && chmod 777 /mnt/tools/linux-x64/upx && sh /mnt/build_arm_cmd.sh"

在这里插入图片描述

进入Jenkins首页----->系统管理---->系统设置----->Publish over SSH---->新增ssh-server---->按下图所填---->填写完成后---->test configuration---->返回success即为成功
在这里插入图片描述

返回到项目配置中----->构建后操作(如下图所示)
在这里插入图片描述

一切配置完,点击保存,点击参数化构建选择对应的分支或标签即可!

拓展部分

Java项目

针对Java项目,在配置好mvn版本后,仅更改执行shell中的内容即可,配置mvn版本有很多教程我这里就不赘述了。
在这里插入图片描述
在这里插入图片描述

c项目构建

在这里插入图片描述

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

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

相关文章

【excel导入、导出】pom、实体类、工具类、例子

目录 一、环境搭建: pom: 实体类(ExcelClassField ): 工具类: 二、【示例】导入 controller: service 实体类: 注意: 三、【示例】导出 controller: …

搜索与图论 - bellman-ford 算法

文章目录一、为什么 Dijkstra 算法不适用于含负权的图1. 理论推导2. 实例演示2.1 详细步骤2.2 结果二、bellman-ford 算法1. 简介2. 基本思路3. 简单举例4. bellman-ford 算法具体实现过程详见例题有边数限制的最短路。三、bellman-ford 算法例题——有边数限制的最短路具体实现…

仓库24代 “ CK_Label_v24

产品型号 CK_Label_v24 尺寸 124x90x12mm(不含安装支架) 屏幕尺寸 4.2 inch 显示技术 电子墨水屏显示 显示区域面积 (mm) 84.8(H) x 63.6(V) 分辨率 400*300 像素密度 120dpi 显示颜色 黑/白 外观颜色 白色&灰外圏 按键 3 指示灯…

【C++】STL标准模板库

目录 一、概念 STL的四种基本组件 容器vector 迭代器iterator 函数对象function object 算法algorithm 二、使用 容器vector的使用 泛型程序设计: 所谓泛型程序设计就是编写不依赖于具体数据类型的程序。C中,模板就是泛型程序设计的主要…

一次疑似 JVM native 内存泄漏的排查实录

最近开发同学反馈,某定时任务服务疑似有内存泄漏,整个进程的内存占用比 Xmx 内存大不少,而且看起来是缓慢上升的,做了下面这次分析,包括下面的内容: 分析 JVM native 内存的一些常见思路内存增长了&#x…

关于Arduino连接L298N供电问题

关于Arduino连接L298N供电问题 查看原文 该L298N板声称有一个5V稳压器为Arduino供电,在这种情况下,您可以使用单个电源,并让电机板为Arduino供电。 关于为Arduino和电机提供动力有两种思想流派: 使用两个独立的电源&#xff0…

NumPy 的使用

NumPy(Numerical Python)是Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,同时也针对数组运算提供大量的数学函数库。 NumPy 的前身 Numeric 最早由 Jim Hugunin 与其他协作者共同开发,2005 年&#xff0…

百万千万爆款视频的脚本是怎么写出来的?两套模板教你做同款

那些百万千万爆款视频的脚本是怎么写出来的?两套模板教你做同款。 每天都能刷到百万赞的短视频,看看自己的视频点赞量,失落是一种感觉,其实你也可以做出优秀的爆款文案。 今天给大家介绍两种短视频脚本模板,大家可以…

idea手动创建干净的maven项目,很简单

大家好,今天我们分享使用idea开发工具创建干净的maven项目 这是Maven的官网: 点一下就可以 首先,我们来了解一下什么是Maven,就是说关于Maven这个东西你要知道的是 1.Maven是一个跨平台(在很多平台上都可以使用&…

B4:Unity制作Moba类游戏——小兵AI系统

若想取得战争的胜利,必先控好兵线。 ———— 麦克阿瑟 是时候让敌人经历一下我们兵线的洗礼。 ———— 拿破仑 在LOL对局中,职业选手对兵线的控制可以说是达到了“运筹帷幄之中,决胜千里之外”。其实普通玩家只要控好兵线,在对线中一样可以…

Java Servlet详解(补充,极其重要)

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:JAVA开发者…

SwiftUI 中列表行(List Row)展开和收起无动画或动画诡异的解决

文章目录 问题现象问题分析1. 为什么 List 行展开与收起没有动画效果?2. 第一种解决方法3. 另一种巧妙的解决总结结束语问题现象 SwiftUI 中展开(expand)和收起(collapse)列表行(List Row)是一个常见的操作,不过默认来说这样的操作不会有动画效果: 如上图所示,我们为…

粒子滤波算法(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

CpG ODN——艾美捷ODN 1826 (TLRGRADE)说明书

艾美捷CpG ODN系列——ODN 1826 (TLRGRADE):具有硫代磷酸酯骨架的CpG寡脱氧核苷酸(B型)。小鼠TLR9(Toll样受体9)的特异性配体。 艾美捷CpG ODN 丨ODN 1826 (TLRGRADE)化学性质: 备选名称:CpG-B…

Suspense组件

先上官网&#xff1a;https://cn.vuejs.org/guide/built-ins/suspense.html 注意一下 <Suspense> 是一项实验性功能。它不一定会最终成为稳定功能&#xff0c;并且在稳定之前相关 API 也可能会发生变化。 在使用了之后在浏览器控制台会有如下打印&#xff0c;至少目前是…

【大数据】有关zookeeper的问题

如图&#xff0c;启动zookeeper失败&#xff0c;输入 zkServer.sh start-foreground 查看失败原因 Invalid config&#xff0c;我得知是配置文件出了问题&#xff0c;但是检查配置文件没有发现错误 最终在配置文件末尾配置参数结尾发现了未删除的空格 将三个节点配置文件中的…

C/C++ 和 Java的编译运行机制比较 个人理解

计算机程序语言按程序的执行方式可分为编译型语言和解释性语言。 编译型语言是指使用专用的编译器&#xff0c;针对某操作系统将高级语言源代码一次性地翻译成可被该系统硬件执行的机器码(包括机器指令和操作数&#xff09;&#xff0c;并包装成该系统所能识别的可执行程序的格…

同事开源我的微服务深度实践笔记到 GitHub,短短 3 天竟吸粉 1W+

说Spring成就了Java&#xff0c;Spring是Java程序员必修课之一&#xff0c;应该没人反对吧&#xff1f;前几年面试最常问的且可以顺利拿到高薪的技能是Spring&#xff0c;随着Spring体系的壮大&#xff0c;除非你在简历上添加Spring Boot和Spring Cloud的技能&#xff0c;才可以…

Kubernetes——Debug Static Pod

1. 问题背景 注意&#xff0c;我这里的Static Pod并非Kubernetes的Static Pod&#xff0c;而是需要把想要Debug的程序放到Delve环境中重新打包一个镜像。因为还有另外一种场景&#xff0c;那就是我们需要不重启Running Pod&#xff0c;为了和这种方式区分&#xff0c;才以此为…

彻底卸载并重装Anaconda环境与Python的方法

本文介绍在Windows平台下&#xff0c;彻底删除Anaconda环境与其自带Python版本&#xff0c;并进行重新安装的方法。 最近&#xff0c;由于原有Anaconda环境中的部分第三方库出现了冲突的情况&#xff0c;且基于“Anaconda Prompt (anaconda3)”也无法升级Anaconda与相关库了&am…