linux

Linux下Jenkins怎样实现自动化构建

小樊
32
2025-09-22 21:09:23
栏目: 智能运维

1. 准备工作:安装Jenkins及依赖 在Linux系统(如CentOS、Ubuntu)上,首先需要安装Jenkins及运行所需的依赖。以CentOS为例,步骤如下:

2. 配置Jenkins全局工具与环境 为了让Jenkins识别项目所需的工具(如Java、Maven、Git),需进入“系统管理→全局工具配置”进行设置:

3. 创建Jenkins任务 登录Jenkins后,点击“新建任务”,输入任务名称(如my-app-build),选择任务类型:

4. 编写Pipeline脚本(核心流程) Pipeline是Jenkins实现自动化构建的关键,通过Jenkinsfile(声明式或脚本式语法)定义构建、测试、部署流程。以下是一个Java项目的典型示例:

pipeline {
    agent any  // 使用任意可用节点执行
    environment {
        MAVEN_OPTS = "-Dmaven.repo.local=${env.WORKSPACE}/.m2"  // 配置Maven本地仓库路径
        DEPLOY_ENV = 'staging'  // 默认部署环境
    }
    stages {
        stage('Checkout') {  // 拉取代码
            steps {
                git branch: 'main', url: 'https://github.com/user/repo.git'  // 关联Git仓库
            }
        }
        stage('Build') {  // 编译打包
            steps {
                sh 'mvn -B clean package'  // 使用Maven编译并打包
                archiveArtifacts 'target/*.jar'  // 归档构建产物(如JAR文件)
            }
        }
        stage('Test') {  // 运行测试
            parallel {  // 并行执行单元测试与集成测试,提升效率
                stage('Unit Test') {
                    steps {
                        junit '**/target/surefire-reports/*.xml'  // 生成JUnit测试报告
                    }
                }
                stage('Integration Test') {
                    steps {
                        sh 'mvn verify -DskipUnitTests'  // 执行集成测试(跳过单元测试)
                    }
                }
            }
        }
        stage('Deploy') {  // 部署到测试环境
            when {  // 条件触发:仅当分支为develop或手动触发时部署
                branch 'develop'
            }
            steps {
                sshagent(['staging-key']) {  // 使用SSH密钥认证
                    sh 'scp target/*.jar user@staging-server:/opt/app'  // 将制品复制到测试服务器
                }
            }
        }
    }
    post {  // 构建后操作
        always {  // 无论成功失败都执行
            cleanWs()  // 清理工作空间
        }
        success {  // 构建成功时发送通知
            echo 'Build succeeded!'
        }
        failure {  // 构建失败时发送通知
            emailext body: 'Build failed: ${BUILD_URL}', subject: 'Jenkins Build Failed'
        }
    }
}

Jenkinsfile提交到代码库(如Git),Jenkins可通过Pipeline插件读取并执行。

5. 配置自动化触发 实现“代码提交即构建”的核心步骤,常见触发方式:

6. 优化与扩展:提升自动化效率

0
看了该问题的人还看了