草庐IT

Jenkins结合gitee自动化部署SpringBoot项目

蜻蜓队长家长 2023-03-28 原文

安装

安装教程

插件选择

Gitee Plugin

配置

  • 源码管理
    填写源码地址 注意:请确保genkins所在的服务器有权限git拉取远程仓库代码,如果不可以请参考ssh配置
    centos 配置ssh拉取远程git代码
源码管理
  • 构建触发器
    1.勾选Gitee webhook 触发构建
    2.生成webhook密码


    构建触发器

    3.在gitee项目管理中配置webhook


    gitee配置webhook
  • 构建


    使用MAVEN构建

    如果没有配置maven请先进系统配置中配置,maven肯定要jdk,所以还需要配置jdk环境


    全局工具配置

    填写maven信息

    JDK配置

    配置ssh服务器信息


    配置ssh

    ssh配置

    通过ssh远程推送文件

    推送文件并执行命令

    下面代码大概意思是吧当前构建完成目录下的源文件去除前缀发送到远程服务器的指定目录,并且执行命令,shell下的sh文件是项目文件

配置所需的代码↓

#Source files 源文件
shell/*.sh
#Remove prefix 移除前缀
shell/
#Remote directory 远程目录
/home/jenkins/moodle/
#Exec command 执行命令

#在添加一个Transfer Set
#Source files 源文件
moodle-admin/target/moodle-admin-1.0-SNAPSHOT.jar
#Remove prefix 移除前缀
moodle-admin/target/
#Remote directory 远程目录
/home/jenkins/moodle/admin
#Exec command 执行命令
cd /home/jenkins/moodle
chmod 777 admin.sh
mv admin.sh admin/my.sh
cd admin
./my.sh restart

#以此类推,如果有多个模块需要启动则添加多个jar
#Source files 源文件
moodle-client/target/moodle-client-1.0-SNAPSHOT.jar
#Remove prefix 移除前缀
moodle-client/target/
#Remote directory 远程目录
/home/jenkins/moodle/client
#Exec command 执行命令
cd /home/jenkins/moodle
chmod 777 client.sh
mv client.sh client/my.sh
cd client
./my.sh restart
项目结构

项目中shell/admin.sh代码↓

#!/bin/sh
#定义程序名 及jar包的名 请替换成自己的
PROJECT_NAME=moodle-admin-1.0-SNAPSHOT.jar
## 编写判断程序是否正在运行的方法
isExist(){
      ## 首先查找进程号
    pid=$(ps -ef | grep ${PROJECT_NAME} | grep -v "grep" | awk '{print $2}')
    ## 如果进程号不存在,则返回0 否则返回1
    if [ -z "${pid}" ]; then
        return 0
    else
        return 1
    fi
}
## 编写启动程序方法
start(){
      ## 调用 判断程序是否正在运行的方法
    isExist
    ## 判断方法返回值是否等于0 ,等于则不存在
    if [ $? -eq "0" ]; then
        echo "${PROJECT_NAME} is starting ......"
        nohup java -jar ${PROJECT_NAME} --spring.profiles.active=prod > ./startup.log &
        echo "${PROJECT_NAME} startup success"
    else
        echo "${PROJECT_NAME} is running, pid=${pid} "
    fi
}
## 编写停止程序的方法
stop(){
    ## 调用 判断程序是否正在运行
    isExist
    ## 判断是否存在,返回值0不存在
    if [ $? -eq "0" ]; then
        echo "${PROJECT_NAME} is not running ......"
    else
        echo "${PROJECT_NAME} is running, pid=${pid}, prepare kill it "
        kill -9 ${pid}
        echo "${PROJECT_NAME} has been successfully killed ......"
    fi
}
## 编写重启方法
restart(){
    ## 先停止再启动
    stop
    start
}
 
 
## 程序最开始执行的
## 根据用户输入,判断执行方法
case "$1" in
    "start")
        start
        ;;
    "stop")
        stop
        ;;
    "restart")
        restart
        ;;
    *)
        echo "please enter the correct commands: "
        echo "such as : sh startup.sh [ start | stop | restart ]"
        ;;
esac

有关Jenkins结合gitee自动化部署SpringBoot项目的更多相关文章

  1. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  2. ruby-on-rails - 结合 meta_search 与 acts_as_taggable_on - 2

    我在开发的Rails3网站的一些搜索功能上遇到了一个小问题。我有一个简单的Post模型,如下所示:classPost我正在使用acts_as_taggable_on来更轻松地向我的帖子添加标签。当我有一个标记为“rails”的帖子并执行以下操作时,一切正常:@posts=Post.tagged_with("rails")问题是,我还想搜索帖子的标题。当我有一篇标题为“Helloworld”并标记为“rails”的帖子时,我希望能够通过搜索“hello”或“rails”来找到这篇帖子。因此,我希望标题列的LIKE语句与acts_as_taggable_on提供的tagged_with方法

  3. ruby - 如何在 buildr 项目中使用 Ruby 代码? - 2

    如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby​​

  4. ruby-on-rails - 项目升级后 Pow 不会更改 ruby​​ 版本 - 2

    我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby​​版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby​​版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘

  5. ruby-on-rails - 新 Rails 项目 : 'bundle install' can't install rails in gemfile - 2

    我已经像这样安装了一个新的Rails项目:$railsnewsite它执行并到达:bundleinstall但是当它似乎尝试安装依赖项时我得到了这个错误Gem::Ext::BuildError:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcheckingforlibkern/OSAtomic.h...yescreatingMakefilemake"DESTDIR="cleanmake"DESTDIR="

  6. ruby - RuntimeError(自动加载常量 Apps 多线程时检测到循环依赖 - 2

    我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("

  7. Ruby 从大范围中获取第 n 个项目 - 2

    假设我有这个范围:("aaaaa".."zzzzz")如何在不事先/每次生成整个项目的情况下从范围中获取第N个项目? 最佳答案 一种快速简便的方法:("aaaaa".."zzzzz").first(42).last#==>"aaabp"如果出于某种原因你不得不一遍又一遍地这样做,或者如果你需要避免为前N个元素构建中间数组,你可以这样写:moduleEnumerabledefskip(n)returnto_enum:skip,nunlessblock_given?each_with_indexdo|item,index|yieldit

  8. ruby-on-rails - 从应用程序中自定义文件夹内的命名空间自动加载 - 2

    我们目前正在为ROR3.2开发自定义cms引擎。在这个过程中,我们希望成为我们的rails应用程序中的一等公民的几个类类型起源,这意味着它们应该驻留在应用程序的app文件夹下,它是插件。目前我们有以下类型:数据源数据类型查看我在app文件夹下创建了多个目录来保存这些:应用/数据源应用/数据类型应用/View更多类型将随之而来,我有点担心应用程序文件夹被这么多目录污染。因此,我想将它们移动到一个子目录/模块中,该子目录/模块包含cms定义的所有类型。所有类都应位于MyCms命名空间内,目录布局应如下所示:应用程序/my_cms/data_source应用程序/my_cms/data_ty

  9. ruby-on-rails - rbenv:从 RVM 移动到 rbenv 后,在 Jenkins 执行 shell 中找不到命令 - 2

    我从Ubuntu服务器上的RVM转移到rbenv。当我使用RVM时,使用bundle没有问题。转移到rbenv后,我在Jenkins的执行shell中收到“找不到命令”错误。我内爆并删除了RVM,并从~/.bashrc'中删除了所有与RVM相关的行。使用后我仍然收到此错误:rvmimploderm~/.rvm-rfrm~/.rvmrcgeminstallbundlerecho'exportPATH="$HOME/.rbenv/bin:$PATH"'>>~/.bashrcecho'eval"$(rbenvinit-)"'>>~/.bashrc.~/.bashrcrbenvversions

  10. jenkins部署1--jenkins+gitee持续集成 - 2

    前置步骤我们都操作完了,这篇开始介绍jenkins的集成。话不多说,看操作1、登录进入jenkins后会让你选择安装插件,选择第一个默认的就行。安装完成后设置账号密码,重新登录。2、配置JDK和Git都需要执行路径,所以需要先把执行路径找到,先进入服务器的docker容器,2.1JDK的路径root@69eef9ee86cf:/usr/bin#echo$JAVA_HOME/usr/local/openjdk-82.2Git的路径root@69eef9ee86cf:/#whichgit/usr/bin/git3、先配置JDK和Git。点击:ManageJenkins>>GlobalToolCon

随机推荐