Jenkins流水线脚本(包含本地,远程,以及k8s)

Jenkins流水线脚本

前言

  1. 流水线使构建过程更加清晰明了,工作量更小,今天就做个总结,进攻参考

流水线命令

  1. jenkins和程序运行服务器在一块儿(本地环境)

    1. 后端

      def git_address = "http://xxx.41.xx.15:8160/xxx/xxx.git"
      def git_auth = "87791646-e23e-4b09-bf31-36f4c56e81ce"
      def project_repo = "xxx_home"
      def profix = "test-"
      def maven_home = "/home/jenkins/maven-v3.6.3/bin"
      def hosts = "xxx.xxx.xx.xx"
      def server_dest = "/opt/server/javaApp/xxx/test"
      def server_bin = "/opt/server/bin/xxx/test"
      def file = "xxx-file"
      def system = "xxx-system"
      def job = "xxx-job"
      def file_with_module = "xxx-modules-file"
      def system_with_module = "xxx-modules-system"
      def job_with_module = "xxx-modules-job"
      def parent = "xxx-modules"
      
      pipeline {
             
      
        agent any
      	stages {
             
      		stage('拉取代码') {
              
      			steps {
             
      			  checkout([$class: 'GitSCM', branches: [[name: '${
             branch}']],
      			  userRemoteConfigs: [[credentialsId: "${git_auth}", url: "${git_address}"]]])
      			}
      		  }
      		stage('打包') {
             
      			steps {
             
      			   sh "${maven_home}/mvn clean install -Dmaven.test.skip=true"
      			}
      		  }
      		stage('推送服务器') {
             
      			steps {
             
      				script {
             
      					def target_host = "${hosts}".split(',')				
      					def selected_projects = "${params.project_name}".split(',')
      					for (int i=0;i<target_host.size();i++) {
             
      						current_host = target_host[i]
      						for(int j=0;j<selected_projects.size();j++){
             
      							//取出每个项目的名称
      							 currentProject = selected_projects[j];
      							//项目名称
      							if ("${currentProject}" == "${system_with_module}") {
             
      								sh "mv ${parent}/${system}/target/*.jar ${parent}/${system}/target/${profix}${currentProject}.jar"							    
      								sh "cp ${parent}/${system}/target/*.jar ${server_dest}"
      								sh "sh ${server_bin}/${currentProject}.sh start"						
      							} else if ("${currentProject}" == "${file_with_module}"){
             
      								sh "mv ${parent}/${file}/target/*.jar ${parent}/${file}/target/${profix}${currentProject}.jar"								    
      								sh "cp ${parent}/${file}/target/*.jar ${server_dest}"
      								sh "sh ${server_bin}/${currentProject}.sh start"		
      							} else if ("${currentProject}" == 
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Jenkins、GitLab和Kubernetes(简称k8s)是现代软件开发中常用的工具和技术,用于实现持续集成(CI)和持续部署(CD)流水线Jenkins是一个开源的自动化服务器工具,提供了丰富的插件和集成能力。它可以根据代码提交或定时触发构建和部署任务,并提供了丰富的报告和可视化界面用于监控和分析构建过程的状态。Jenkins还支持多个环境的部署,可以用于构建、测试和发布软件。 GitLab是一个基于Git的源代码管理平台,它提供了Git仓库的托管服务和代码协作功能。同时,GitLab还集成了CI/CD功能,允许在代码提交到仓库时自动触发构建和部署流水线。可以配置GitLab与Jenkins进行集成,使得代码提交后可以自动触发Jenkins的构建任务。 k8s是一个开源容器编排平台,用于管理和自动化容器化应用程序的部署、扩展和操作。k8s提供了强大的资源调度和管理能力,可以帮助开发人员将应用程序部署到不同的环境中,并按需扩展或回收资源。在CI/CD流水线中,k8s可以用于部署和运行构建好的应用程序,确保在不同环境中的一致性。 综上所述,Jenkins、GitLab和k8s组合可以实现一个完整的CI/CD流水线。当代码提交到GitLab时,GitLab可以触发Jenkins的构建任务。Jenkins可以根据需要进行构建、测试和部署。最后,k8s可以将构建好的应用程序部署到不同环境中运行。这个流水线可以实现自动化的构建、测试和部署,并提供了监控和报告功能,提高了开发效率和软件质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值