【Jenkins】windows构建自动化部署demo

本文介绍如何在Windows环境下使用Jenkins搭建CI/CD流程,包括创建Spring Boot项目、配置Maven打包、构建Git环境及使用Jenkins进行自动化部署等关键步骤。

前言

Jenkins 工作中主要用在Linux 系统上。目前只是 自己本地开发玩玩CI/CD,所以先在windows上跑个demo。

主要思路

  • 新建spring boot demo 项目

    • spring boot 打包成可执行jar包需要maven插件支持,官网 initializr 会默认在pom.xml里面加入插件声明
  • 构建git环境,准备一个可push 的github仓库

    • fork一个别的的项目也可以,关键是代码仓支持本地push上去
  • 使用 maven 命令行构建、运行项目

    mvn clean install
    java -jar target/demo-0.0.1-SNAPSHOT.jar
    
  • 安装Jenkins

    • 参考官网
    • Jenkins 本质上是一个可运行的后台项目,一个war包,在windows 上运行会注册到service上。按官网步骤安装完成后,直接localhost 访问自己设定的口号即可
  • 使用Jenkins的功能

<think>嗯,用户想要找关于Jenkins自动化构建部署的脚本示例或指南。首先,我需要回顾一下用户之前提供的引用内容。引用[1]和[2]都提到了Jenkins自动化构建原理,以及如何通过脚本替代手动操作。用户可能已经了解了一些基本概念,现在需要具体的脚本示例和步骤。 我应该先整理一个典型的Jenkins自动化流程,比如从代码拉取、构建、测试到部署的各个阶段。然后,针对每个阶段提供相应的脚本示例,比如Shell脚本或Pipeline脚本。记得用户提到过Docker部署,所以在部署部分可能需要结合Docker命令。 另外,用户提供的引用中提到使用Docker快速部署Jenkins,这部分可以作为环境搭建的参考。但用户现在更关注的是构建部署的脚本,所以重点应该放在脚本编写和配置上,而不是安装步骤。 需要确保脚本的语法正确,比如在Jenkinsfile中使用Declarative Pipeline的格式,或者Shell脚本的正确写法。同时,要结合用户提到的多环境部署和依赖管理,可能需要在脚本中展示如何处理不同环境变量或配置文件。 还要注意用户可能需要了解如何将脚本集成到Jenkins任务中,所以步骤中要包括创建流水线任务、配置仓库地址等操作。另外,错误处理和通知机制也是用户可能关心的点,比如构建失败时发送邮件或Slack通知。 最后,生成的相关问题需要围绕用户可能进一步的需求,比如优化构建速度、安全加固或与Kubernetes集成,这样可以帮助用户深入探索更多自动化部署的方面。</think>### Jenkins自动化构建部署脚本示例教程 #### 一、典型自动化构建流程 1. **代码拉取**:从Git仓库获取最新代码 2. **依赖安装**:使用Maven/Gradle/NPM等工具安装依赖 3. **代码构建**:编译源代码生成可执行文件 4. **质量检测**:执行单元测试/代码扫描 5. **制品归档**:存储构建产物(JAR/WAR/Docker镜像) 6. **自动部署**:通过SSH/Ansible/Kubernetes部署到目标环境 #### 二、基础Shell脚本示例(Java项目) ```bash #!/bin/bash # 构建阶段 REPO_URL="git@github.com:yourrepo/springboot-demo.git" TARGET_DIR="/opt/deployments" BRANCH="main" echo "Cloning repository..." git clone -b $BRANCH $REPO_URL || exit 1 cd springboot-demo echo "Building with Maven..." mvn clean package -DskipTests || exit 1 # Docker镜像构建 echo "Building Docker image..." docker build -t app:v$BUILD_NUMBER . || exit 1 # 部署到测试环境 echo "Deploying to test environment..." scp target/*.jar user@test-server:$TARGET_DIR ssh user@test-server "systemctl restart app-service" ``` #### 三、Jenkins Pipeline脚本(推荐方式) ```groovy pipeline { agent any environment { DOCKER_REGISTRY = "registry.example.com" PROD_SERVER = "prod-server.example.com" } stages { stage('Checkout') { steps { git branch: 'main', url: 'git@github.com:yourrepo/springboot-demo.git' } } stage('Build') { steps { sh 'mvn clean package -DskipTests' } } stage('Test') { steps { parallel( "Unit Tests": { sh 'mvn test' }, "Code Analysis": { sh 'sonar-scanner -Dsonar.projectKey=myapp' } ) } } stage('Docker Push') { steps { script { docker.withRegistry('https://' + DOCKER_REGISTRY) { def image = docker.build("myapp:${env.BUILD_ID}") image.push() } } } } stage('Deploy to Prod') { when { branch 'main' } steps { sshagent(['prod-server-key']) { sh """ ssh ubuntu@${PROD_SERVER} 'docker pull ${DOCKER_REGISTRY}/myapp:${env.BUILD_ID}' ssh ubuntu@${PROD_SERVER} 'docker-compose down && docker-compose up -d' """ } } } } post { failure { emailext body: '构建失败,请检查日志:${BUILD_URL}', subject: '构建失败通知', to: 'team@example.com' } } } ``` #### 四、关键配置步骤 1. **创建流水线任务**: - 新建Item → 选择"Pipeline" - 在Pipeline配置页选择"Pipeline script from SCM" - 设置Git仓库地址和Jenkinsfile路径 2. **凭据管理**: ```bash # 添加SSH密钥 Jenkins → 凭据 → 系统 → 全局凭据 → 添加凭据 # 类型选择"SSH Username with private key" ``` 3. **构建触发器配置**: - 定时构建:`H/5 * * * *`(每5分钟) - Git Hook:通过Webhook实现代码提交触发 - 手动触发:提供参数化构建选项 #### 五、最佳实践建议 1. **构建缓存优化**: ```bash # Maven本地仓库缓存 docker run -v /path/to/m2:/root/.m2 ... # NPM缓存示例 sh 'npm config set cache .npmcache --global' ``` 2. **多阶段Docker构建**: ```dockerfile FROM maven:3.8-jdk-11 AS builder COPY . /app RUN mvn package FROM openjdk:11-jre-slim COPY --from=builder /app/target/*.jar /app.jar CMD ["java","-jar","/app.jar"] ``` 3. **部署回滚机制**: ```groovy stage('Rollback') { steps { script { def lastGood = currentBuild.getPreviousSuccessfulBuild() if (lastGood) { sh "ssh prod-server 'docker tag ${DOCKER_REGISTRY}/myapp:${lastGood.id} myapp:current'" } } } } ``` [^1]: Jenkins自动化部署的核心原理是将手动操作转化为可重复执行的脚本流程。 [^2]: 通过Docker部署Jenkins可以快速搭建可靠的环境,结合Pipeline脚本实现复杂工作流。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值