Jenkins初试体验 ---Java+.NetCore+Vue多项目自动化打包

一直关注DevOps很久了,一直没有时间尝试,最近花了一些时间搭建了Jenkins,用的Docker方式安装的,刚开始用的镜像是Jenkins-blueocean版(海洋版),但是这个版本有个很大的问题,就是基于alpine linux的镜像,该操作系统操作方式和ubuntu、centos有区别,而且安装插件也不太方便(个人操作体验,网上也有人说这个方便)。

所以最后使用了 docker pull jenkins/jenkins 这个镜像,安装方式这里就不讲了,网上有很多教程。主要分享一下pipeline打包项目的脚本。我们的项目比较复杂,涉及Java、.NetCore、vue三种语言

前提:jenkins安装插件 maven、jdk

docker容器里安装插件svn、dotnet插件(进入容器的方法docker exec -it -uroot jenkins bash)

  1. 先创建一个流水线任务

2、提前安装插件 maven、jdk


def curDateTime=''
def path = 'tmp'
def svnUserName = ''
def svnPassword = ''
import java.text.SimpleDateFormat

pipeline {
    agent any

    environment {
        def BUILDVERSION = sh(script: "echo `date +%Y%m%d%H%M%S`", returnStdout: true).trim()
     
    }

    tools {
        // Install the Maven version configured as "M3" and add it to the path.
        maven "Maven387"
        jdk "java1.8"
    }

 
    stages {
        stage('生成版本') {
            steps{
                script{
                    def dateFormat = new SimpleDateFormat('yyyyMMdd')
                    def date = new Date()
                    curDateTime = 'Build_'+ dateFormat.format(date)
                }
            }
        }
 
        stage('环境验证') {
            steps {
                nodejs('NodeJs14') {
                    sh 'node -v'
                    sh 'npm -v'
                    sh 'dotnet --info'
                }
            }
        }
        stage('拉取源码') {
            steps {
                echo '开始拉取代码'
                checkout([$class: 'SubversionSCM', additionalCredentials: [], excludedCommitMessages: '', excludedRegions: '', excludedRevprop: '', excludedUsers: '', filterChangelog: false, ignoreDirPropChanges: false, includedRegions: '', locations: [[cancelProcessOnExternalsFail: true, credentialsId: 'zhangsan', depthOption: 'infinity', ignoreExternalsOption: true, local: '.', remote: 'SVN地址']], quietOperation: true, workspaceUpdater: [$class: 'UpdateUpdater']])
                echo '拉取代码完成'
            }
        }
      
        stage('生成web项目') {
            steps{
                dir('./web') {
                    echo '删除上次生成结果文件夹'

                    sh 'rm -rf ./dist'
                    echo '开始生成项目'
                    nodejs('NodeJs14') {
                        sh 'npm install'
                        sh "npm run build"
                    }
                    echo '生成项目结束'
                }
            }
        }
        stage('生成dotnet项目') {
          steps{
              dir('./dotnet') {
                  echo '删除上次生成结果文件夹'
                  sh 'rm -rf ./out'
                  echo '开始生成项目'
                  sh 'dotnet publish xxxxxxxxxxx.sln -c Release -r linux-x64  -o out --self-contained false'
                  //sh "\\cp -rf ./dotnet/resources/* ./out/"  //一些静态资源的拷贝
                  echo '生成项目结束'
              }
          }
        }
        stage('生成java项目') {
          steps{
              dir('./java') {
                  echo '开始生成项目'
                  sh 'mvn -Dmaven.test.skip=true -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true clean package '
                  echo '生成项目结束'
              }
          }
        }

        stage('制作包') {
          steps{
                echo '打包程序结束....'
          }
        }

       stage('上传到SVN') {
            steps{
                dir('./tmp') {
                    echo '开始上传'
                    sh "svn import -m \"上传包\" xxx.zip http://192.168.60.11/svn//${curDateTime}.zip  --username ${svnUserName} --password ${svnPassword} "
                    echo '上传结束'
                }
            }
        }

        stage('部署项目') {
            steps{
                dir('./tmp') {
                    echo '开始部署'

                    echo '部署结束'
                }
            }
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值