首页主机资讯如何在Debian上配置Jenkins多分支构建

如何在Debian上配置Jenkins多分支构建

时间2025-12-15 18:09:04发布访客分类主机资讯浏览674
导读:在 Debian 上配置 Jenkins 多分支构建 一 环境准备与安装 安装 Java 11(Jenkins 官方推荐 LTS 搭配 JDK 11): 执行:sudo apt update && sudo apt in...

在 Debian 上配置 Jenkins 多分支构建

一 环境准备与安装

  • 安装 Java 11(Jenkins 官方推荐 LTS 搭配 JDK 11):
    • 执行:sudo apt update & & sudo apt install -y openjdk-11-jdk
  • 添加 Jenkins 官方仓库 并安装:
    • 执行:
      wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
      echo "deb https://pkg.jenkins.io/debian-stable binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list >
           /dev/null
      sudo apt update &
          &
           sudo apt install -y jenkins
      
  • 启动并设置开机自启:
    • 执行:sudo systemctl enable --now jenkins
  • 解锁与初始化:
    • 访问:http://< 服务器IP> :8080
    • 初始管理员密码:sudo cat /var/lib/jenkins/secrets/initialAdminPassword
    • 按向导完成插件安装与管理员创建。

二 安装必要插件

  • Manage Jenkins → Manage Plugins 安装:
    • Pipeline(流水线核心)
    • Branch API(分支 API)
    • Git pluginGitHub Integration(或 GitLab 插件)
    • Pipeline: Multibranch(多分支流水线)
    • 可选:Blue Ocean(可视化流水线)
    • 可选(按场景):Docker PipelinePublish Over SSH(构建后发布/部署)

三 创建多分支流水线

  • 新建任务:选择 Multibranch Pipeline
  • 配置源码管理:
    • 选择 Git,填写仓库 URLCredentials(建议使用 SSH 或 Personal Access Token)
    • 指定 Jenkinsfile 路径(默认为根目录的 Jenkinsfile
  • 分支发现与扫描:
    • 选择分支发现策略(如 Discover all branches
    • 可设置 构建配置规则(按分支名过滤,如只构建 main/developfeature/
  • 触发器(推荐即时触发):
    • 勾选 Scan by webhook trigger(安装 Multibranch Scan Webhook Trigger 插件后可见),后续在代码托管平台配置 Webhook 即可按需触发扫描与构建
  • 保存后执行首次扫描,Jenkins 会为每个包含 Jenkinsfile 的分支自动创建子任务。

四 配置 Webhook 实现即时构建

  • 方式一(推荐):使用 Multibranch Scan Webhook Trigger
    • 在 Multibranch 项目配置中启用 Scan Multibranch Pipeline Triggers,生成 Webhook 调用地址(形如:https://< IP> /multibranch-webhook-trigger/invoke?token=< TOKEN>
    • GitHub/Gitee/GitLab 项目 Webhook 中配置该 URL 与可选 token,事件选择 Push events / Pull Request events
    • 推送代码或创建 PR 时将自动触发对应分支的扫描与构建
  • 方式二:使用 Generic Webhook Trigger(更灵活)
    • Jenkinsfiletriggers 中声明:
      triggers {
      
        GenericTrigger(
          causeString: 'Triggered by $ref',
          genericVariables: [[key: 'ref', value: '$.ref']],
          regexpFilterExpression: '^refs/heads/(main|develop|release/.*)$',
          regexpFilterText: '$ref',
          token: 'mytoken'
        )
      }
          
      
    • 托管平台 Webhook 指向:https://< IP> /generic-webhook-trigger/invoke?token=mytoken
    • 注意:首次把 triggers 写入 Jenkinsfile 后,需触发一次变更使 Jenkins 拉取新配置,之后即可按规则触发。

五 示例 Jenkinsfile 与常见问题

  • 示例 Jenkinsfile(按分支执行不同部署策略)
    pipeline {
    
      agent any
      parameters {
    
        booleanParam(name: 'DEPLOY_TO_PROD', defaultValue: false, description: 'Deploy to production?')
      }
    
      environment {
    
        ARTIFACT = 'target/app.jar'
      }
    
      stages {
    
        stage('Checkout') {
    
          steps {
    
            checkout scm
          }
    
        }
    
        stage('Build') {
    
          steps {
    
            sh 'mvn -B -DskipTests clean package'
          }
    
        }
    
        stage('Deploy to Test') {
    
          when {
     expression {
     !params.DEPLOY_TO_PROD }
     }
    
          steps {
    
            sh './deploy.sh test'
          }
    
        }
    
        stage('Deploy to Prod') {
    
          when {
     expression {
     params.DEPLOY_TO_PROD }
     }
    
          steps {
    
            input '确认部署到生产环境?'
            sh './deploy.sh prod'
          }
    
        }
    
      }
    
      post {
    
        success {
     echo 'Build and deploy succeeded.' }
    
        failure {
     echo 'Build or deploy failed.' }
    
      }
    
    }
        
    
  • 常见问题与排查
    • 分支未被发现:确认分支根目录存在 Jenkinsfile,分支过滤规则未排除该分支
    • Webhook 未触发:检查托管平台 Payload URLContent typeSecret/Token 与网络连通性(必要时放行 8080/50000 端口)
    • 首次添加 triggers 未触发:提交一次变更以让 Jenkins 拉取新 Jenkinsfile
    • 权限问题:确保 Jenkins 用户对工作空间与部署目标具备读写/执行权限
    • 构建后进程被杀死:在启动脚本前设置环境变量 export BUILD_ID=dontKillMe(适用于后台常驻进程场景)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何在Debian上配置Jenkins多分支构建
本文地址: https://pptw.com/jishu/771882.html
Laravel依赖如何在Debian上安装 ubuntu中openssl如何更新证书

游客 回复需填写必要信息