跳转至

Jenkins 与 Gitea 自动 CI

Jenkins配置任务监听 gitea 仓库

1. 安装 Gitea Plugin

在 Jenkins 打开 系统管理 - 插件管理,在 可选插件 中搜索并安装 Gitea。
image-20240726180351157

2. 创建 Organization Folder

Jenkins 中 Organization Folder 任务支持从 Gitea 服务器扫描并自动添加组织或用户目录下的所有代码仓库。当代码仓库中包含 Jenkinsfile 时会自动将该仓库加入流水线队列。在这种自动化模式下,该组织下的代码仓库无需单独配置 Webhook 便可以自动与 Jenkins CI 集成。
image-20240726162831325

3. 配置 Repository Sources

打开刚才创建的 Organization Folder。在 Projects - Repository Sources 中添加 Gitea Organization 并填写以下信息:

添加 Gitea 服务器 和 组织信息
image-20240726163424743
Server: 选择一个 Gitea Server
Owner: 与 Jenkins 集成的 Gitea 组织或个人目录
Credentials: 选择一个用于访问 GiteaJenkins 账号访问令牌(应该拥有 Owner 的管理权限)

Jenkins 会自动扫描 Gitea 服务器中的 test 组织下的包含条件的仓库,在 Scan Gitea Organization Log 中呈现出扫描结果。

扫描到 Gitea 服务器中 test 组织中的 java-test 仓库
image-20240726163739106

Gitea 配置集成 Jenkins

与 Jenkins 集成配置中,给 Gitea 服务器上的 test 组织集成了 Jenkins CI 的能力。

当用户在 test 组织中创建包含 Jenkinsfile 文件的代码仓库时, Jenkins CI 将自动启动,为 Gitea 仓库配置 Webhook。当用户再次提交代码至 Gitea 服务器时,Jenkins 就会被 Gitea Webhook 触发构建过程。

1. 在组织中创建测试仓库

在组织 test 中创建测试仓库 gitea-ci-test
image-20240726164637250

2. 编写代码并推送至测试仓库

1. 拉取代码至本地
git clone <git@cicd-gitea.linuxnbg.com:datarc/iceberg.git>
git checkout -b gitea-ci-test-1
2. 创建 Jenkinsfile 文件
cat > Jenkinsfile << "EOF"
pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                sh 'echo build'
            }
        }
        stage('Test'){
            steps {
                sh 'echo test'
            }
        }
        stage('Deploy') {
            steps {
                sh 'echo publish'
            }
        }
    }
}
EOF
3. 推送至 gitea-ci-test 测试仓库
git add .
git commit -m "chore: chore: 添加 Jenkinsfile 文件"
git push origin gitea-ci-test-1

3. 检查 Plugin 创建的 Webhook

当在 Jenkins 的 Gitea Plugin 中勾选 Manage hook 后,Gitea 的组织与 Jenkins 集成时 Gitea Plugin 插件自动为新建的 Gitea 仓库创建 Webhook。(检测到 Jenkinsfile 文件才会创建)

检查 Gitea Plugin 自动为 Gitea 创建的 Webhook
image-20240726173621297

4. 查看 Jenkins-CI 流程

在 Gitea 的提交列表中,可以看到当前代码提交的构建情况。

  • 黄色的 ● 表示正在进行构建任务
  • 绿色的 ✔ 表示已经完成的构建任务。
在 Gitea 的提交列表中,可以看到当前代码提交的构建情况。
image-20240726174354329
点击图标 ●、✔、× 符号可以跳转至 Jenkins 查看任务详情情况。
image-20240726174626530