Jenkins pipeline配置示例

news/2024/12/21 22:28:59/

前提条件:已经安装Jenkins并能正常启动

如果Jenkins安装启动遇到问题可以参考:

1.创建pipeline

  1. 点击新建项目:

  1. 输入名称,选择pipeline

  1. 进入配置页面,如果要配置GitHub Webhook要勾选:<font style="color:rgb(20, 20, 31);">GitHub hook trigger for GITScm polling</font>

  1. 进行pipeline配置:

  • Definition选择Pipeline script from SCM

作用是让Jenkins从源代码管理(SCM)系统拉去Jenkins的脚本文件

  • SCM选择Git
  • Repository URL填写GitHub仓库的url
  • 如果仓库是public的话无需填写Credentials

  • Branch Specifier填写要进行pipeline操作的仓库分支
  • Script Path默认是Jenkinsfile即可

其余选项无需配置,保持默认即可

2.配置maven

运行maven指令的时候一直出现command not found的问题,但是服务器上已经配置过了maven,于是在Jenkins中进行配置:

DashBoard——Manage Jenkins——Tools——Maven Configuration

配置settings文件的路径即可

3.编写Jenkinsfile

在项目的根目录下创建Jenkins脚本文件,文件名为Jenkinsfile

pipeline {agent anyenvironment {// 定义环境变量SERVER_IP = your-server-ip        					// 服务器IP地址SERVER_USER = your-username    					// 服务器用户名TARGET_DIR = you-jarFileDir                  // 服务器上的目标目录JAR_FILE = your-jarFileName                // 打包后的文件名}stages {stage('Clone Source Code') {steps {// 拉取项目源码//注意: 这里根据自己的需求选择合适的分支以及仓库地址(ssh或https)git branch: 'master', url: 'your-repository-url'}}stage('Build Project') {steps {// 使用 Maven 构建项目sh 'mvn clean package -DskipTests'}}stage('Verify Build Output') {// 验证构建结果steps {sh 'ls -l target/'}}stage('Test') {steps {// 运行测试sh 'mvn test'}}stage('Deploy') {// 部署到远程服务器steps {script {// StrictHostKeyChecking=no 表示不检查远程主机的公钥 建议配置好ssh的免密登录// Step 1: 传输文件到远程服务器 scp -v 可以查看文件传输的进度sh """scp -v -o StrictHostKeyChecking=no target/${JAR_FILE} ${SERVER_USER}@${SERVER_IP}:${TARGET_DIR}"""// Step 2: 杀死已存在的进程def killStatus = sh(script: """ssh -o StrictHostKeyChecking=no ${SERVER_USER}@${SERVER_IP} 'pgrep -f ${JAR_FILE} | xargs kill -9 || true'""", returnStatus: true)echo "Kill process exit status: ${killStatus}"// Step 3: 启动新的进程sh """ssh -o StrictHostKeyChecking=no ${SERVER_USER}@${SERVER_IP} 'nohup java -jar ${TARGET_DIR}/${JAR_FILE} > /dev/null 2>&1 &'"""}}}}post {always {// 每次构建结束后清理工作目录cleanWs()}success {echo 'Deployment finished successfully'}failure {echo 'Deployment failed'}}
}

具体流程:

  1. 拉取代码(注意ssh方式和https方式的不同)
  2. 构建项目
  3. 进行测试
  4. 部署到远程服务器
    ①文件传输(jar)
    ②停止之前的进程
    ③重新启动进程

http://www.ppmy.cn/news/1537072.html

相关文章

【机器学习-无监督学习】概率图模型

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈Python机器学习 ⌋ ⌋ ⌋ 机器学习是一门人工智能的分支学科&#xff0c;通过算法和模型让计算机从数据中学习&#xff0c;进行模型训练和优化&#xff0c;做出预测、分类和决策支持。Python成为机器学习的首选语言&#xff0c;…

27-云计算下一个十年技术Serverless

├──27-云计算下一个十年技术Serverless | ├──1-Serverless深度实战之Knative | | ├──1-使用Knative平台环境说明 | | ├──2-现阶段云原生应用领域介绍 | | ├──3-为什么要引入Serverless | | ├──4-Serverless应用场景 | | ├──5-Serve…

智能化楼宇:能源管理、环境监测、设备维护、数据分析

能源管理自动化&#xff0c;环境监测自动化&#xff0c;设备维护自动化&#xff0c;数据分析与优化。这些是智能化楼宇系统所涵盖的关键领域。通过引入先进的传感器、自动控制系统和人工智能技术&#xff0c;智能化楼宇系统能够实现楼宇内部各系统的协调运作和优化管理。 首先…

PyQt入门指南一 框架介绍

1. PyQt概述 PyQt是一个用于创建桌面应用程序的Python绑定库&#xff0c;它基于Qt框架。Qt是由挪威公司Trolltech开发的跨平台C图形用户界面应用程序开发框架。PyQt使得Python开发者能够利用Qt的强大功能来构建专业的图形用户界面&#xff08;GUI&#xff09;应用程序。 2. 为…

SQL中如何进行 ‘’撤销‘’ 操作-详解

在 SQL 中&#xff0c;撤销已经执行的操作通常涉及两个主要的概念&#xff1a;事务控制和回滚操作。 ### 1. 事务控制 在支持事务的数据库管理系统&#xff08;如 MySQL 的 InnoDB 引擎&#xff09;中&#xff0c;您可以使用事务来确保数据的完整性。事务可以确保一系列的操作…

【AI大模型】深入Transformer架构:编码器部分的实现与解析(下)

目录 &#x1f354; 编码器介绍 &#x1f354; 前馈全连接层 2.1 前馈全连接层 2.2 前馈全连接层的代码分析 2.3 前馈全连接层总结 &#x1f354; 规范化层 3.1 规范化层的作用 3.2 规范化层的代码实现 3.3 规范化层总结 &#x1f354; 子层连接结构 4.1 子层连接结…

python 实现graph matrix图矩阵算法

graph matrix图矩阵算法介绍 Graph Matrix&#xff08;图矩阵&#xff09;算法主要用于表示和处理图结构中的数据&#xff0c;尤其是在计算机科学和数学中。图矩阵通常指的是图的邻接矩阵&#xff08;Adjacency Matrix&#xff09;&#xff0c;它是一种用矩阵表示图中顶点之间…

【可答疑】基于51单片机的PWM控制智能台灯设计(含仿真、代码、报告、演示视频等)

✨哈喽大家好&#xff0c;这里是每天一杯冰美式oh&#xff0c;985电子本硕&#xff0c;大厂嵌入式在职0.3年&#xff0c;业余时间做做单片机小项目&#xff0c;有需要也可以提供就业指导&#xff08;免费&#xff09;~ &#x1f431;‍&#x1f409;这是51单片机毕业设计100篇…