docker部署Jenkins
docker volume create jenkins-data
docker run -d -p 8080:8080 -p 50000:50000 -v jenkins-data:/var/jenkins_home --name jenkins-lts jenkins/jenkins:lts
Jenkins页面

创建任务

点击OK后将位于项目的配置页面

简单的示例:
点击 Add build step 下拉按钮,然后选择 Execute shell。这将 shell 命令作为构建的一部分来运行。

点击 Save, Jenkins 会重定向到新创建的项目 My-First-Job 的主页面

**点击 (Build Now)**开始构建过程,在左下角的builds区域可以看到构建的历史记录

点击构建编号 #1 可以进入该特定构建的详情页面

控制台输出

使用触发器调度构建

此字段使用 cron 语法定义调度。该语法由 5 个由空格分隔的字段组成
MINUTE HOUR DAYOFMONTH MONTH DAYOFWEEK
* * * * *每分钟运行一次
归档构建产物
进入配置界面,找到Execute shell 命令框,在脚本中添加新的一行,创建一个名为 build-info.txt 的文件。$BUILD_NUMBER 是 Jenkins 提供的环境变量,其中包含当前的构建号。

配置一个构建后操作来归档此文件,向下滚动到 Post-build Actions 部分,点击 Add post-build action 下拉菜单,然后选择 Archive the artifacts。

在 Files to archive 字段中,输入你想要归档的文件名:build-info.txt。你也可以使用通配符,如 **/*.jar 来归档多个文件。

点击 Build Now 来运行一个新的构建。构建完成后,点击 Build History 中的最新构建号。会看到一个名为 Build Artifacts 的部分,其中包含指向 build-info.txt 的链接。可以点击它来查看或下载文件。

配置工作区清理
Post-build Actions 部分。点击 Add post-build action 下拉菜单,然后选择 Delete workspace when build is done。

点击 **Save,**每次构建完成后,Jenkins 将删除工作区目录中的所有文件。归档的产物会单独存储,不受工作区清理的影响。
Jenkins 与 Git 集成
- 在 Jenkins 仪表盘(dashboard)上,点击右上角的齿轮图标(设置按钮)。
- 在设置页面上,找到并点击 Plugins
- 选择 Installed plugins 标签页。
- 在右侧的搜索框中,输入
Git以筛选已安装的插件。

创建项目并配置 Git SCM
创建一个git-integration-project 项目,配置页找到Source Code Management 部分

在 Repository URL 字段中,输入为你准备好的本地 Git 仓库的绝对路径
当作业运行时,Jenkins 会首先将 Git 仓库克隆到其工作空间,然后从该工作空间内执行这些命令。
启用 SCM 轮询自动构建
在检测到 Git 仓库中的更改时自动启动构建。
Schedule 文本框使用 cron 语法来定义 Jenkins 检查仓库更改的频率。要每分钟轮询一次,为*****


git-integration-project 页面,在左侧边栏中,你会看到一个名为 Git Polling Log 的新选项,此页面显示了轮询活动。
添加参数

示例:


会看到 Build with Parameters 选项,而不是 "Build Now"

Post-build Task Plugin

安装完成后


Jenkins Pipeline
简单示例:

配置页面保持配置不变,save
配置你的 Jenkins 项目以从远程 Git 仓库检索其流水线定义。我这里使用一个包含预配置 Jenkinsfile
pipeline {
agent any
environment {
DEPLOY_TARGET = 'staging'
}
stages {
stage('Build') {
steps {
echo 'Building the application...'
sh 'echo "Compiling source code..."'
}
}
stage('Test') {
steps {
echo 'Testing the application...'
sh 'echo "Running unit tests..."'
}
}
stage('Deploy') {
steps {
echo "Deploying the application to ${env.DEPLOY_TARGET}..."
sh 'echo "Application deployed successfully!"'
}
}
}
}
pipeline { ... }: 定义整个流水线的核心块。agent any: 指示 Jenkins 在任何可用代理上运行此流水线。environment { ... }: 定义可在整个流水线中使用的环境变量。stages { ... }: 包含流水线中所有阶段的包装器。stage('...') { ... }: 定义特定的阶段。阶段有助于可视化工作流程。steps { ... }: 包含在阶段中要执行的实际命令。echo '...': 一个打印消息到构建日志的步骤。sh '...': 一个执行 shell 命令的步骤。
配置执行远程 GitHub 仓库中定义的流水线

点击build now
