温馨提示×

debian jenkins如何自动构建

小樊
36
2026-09-17 05:42:38
栏目: 智能运维

在 Debian 上让 Jenkins 自动构建,通常包含以下几个步骤:安装 Jenkins → 配置项目 → 设置触发方式(自动触发)。下面我按实用流程讲。


一、Debian 上安装 Jenkins

1. 安装 Java(Jenkins 依赖)

sudo apt update
sudo apt install -y openjdk-17-jdk

2. 添加 Jenkins 源并安装

sudo wget -O /usr/share/keyrings/jenkins-keyring.asc \
  https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key

echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
  https://pkg.jenkins.io/debian-stable binary/" | \
  sudo tee /etc/apt/sources.list.d/jenkins.list

sudo apt update
sudo apt install -y jenkins

3. 启动 Jenkins

sudo systemctl enable --now jenkins

访问:

http://<服务器IP>:8080

初始密码:

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

二、创建一个自动构建任务(以 Git 为例)

1. 新建任务

  • Jenkins → New Item
  • 选择 Freestyle project 或 Pipeline
  • 输入任务名

2. 配置代码仓库

  • Source Code Management
    • 选择 Git
    • 填写仓库地址
    • 配置凭据(用户名/密码 或 SSH Key)

3. 编写构建步骤

例如:

#!/bin/bash
npm install
npm run build

或 Maven:

mvn clean package

三、设置「自动构建」的几种方式

✅ 方式 1:定时构建(Cron)

Build Triggers → Build periodically

示例:

H/15 * * * *

每 15 分钟检查一次

H 2 * * *

每天凌晨 2 点


✅ 方式 2:Git 提交自动触发(最常用)

方法 A:Poll SCM(简单)

  • Build Triggers → Poll SCM
H/5 * * * *

每 5 分钟拉取一次 Git

方法 B:Webhook(推荐)

Git 仓库(GitHub / GitLab / Gitea)配置 Webhook

Jenkins 需要插件:

  • GitHub Plugin
  • GitLab Plugin

Jenkins 配置:

  • Build Triggers → GitHub hook trigger

Git 平台配置:

http://jenkins地址/github-webhook/

提交代码 → 自动触发构建


✅ 方式 3:其他触发方式

  • Gerrit Trigger(代码评审)
  • Upstream/Downstream(任务依赖)
  • Generic Webhook Trigger(通用 HTTP 触发)

四、示例:Pipeline 自动构建

pipeline {
    agent any
    triggers {
        pollSCM('H/5 * * * *')
    }
    stages {
        stage('Build') {
            steps {
                sh 'npm install'
                sh 'npm run build'
            }
        }
    }
}

五、常见问题

Jenkins 无法访问 Git

sudo -u jenkins ssh -T git@github.com

权限问题

sudo usermod -aG docker jenkins
sudo systemctl restart jenkins

六、总结

自动构建核心三步:

  1. 源码接入 Git
  2. 写好构建脚本
  3. 配置触发方式(Webhook / Cron / Poll)

如果你愿意,我可以:

  • 给你 GitHub + Jenkins 自动部署示例
  • 配置 Docker 自动构建
  • 写 Debian systemd + Jenkins CI/CD 完整方案

你现在是哪种代码仓库?(GitHub / GitLab / Gitea / 内网 Git)

0 踩