littlebot
Published on 2025-04-03 / 0 Visits
0

【源码】基于Go语言的Dubhe轻量级持续集成系统

项目简介

Dubhe轻量级持续集成系统旨在解决公司服务器资源不足的问题,同时便于与公司内部系统结合。它参考了Jenkins、Drone、GitLab等优秀项目,采用Go语言编写,以Docker作为构建环境,能与Git仓库集成,支持对多种语言项目进行持续集成操作。

项目的主要特性和功能

  1. 仓库管理:与Git仓库对应,类似Jenkins中的Item,便于管理项目仓库。
  2. 凭据管理:可添加Git仓库认证所需的秘钥等信息。
  3. 支持多工具和语言:利用Docker构建环境,支持Maven、Gradle、npm等构建工具,以及Java、Python、Go等编程语言。
  4. 灵活配置:允许用户通过YAML配置文件定义构建流程,支持条件构建、并行构建。
  5. 日志与状态管理:提供构建日志实时查看与存储功能,可查询和管理构建状态。
  6. 可定制通知:构建完成时可通过Webhook、邮件、Slack等方式发送通知。
  7. 扩展性强:采用模块化设计,支持插件和自定义扩展。

安装使用步骤

安装

  1. 确保系统安装了Go 1.13以上版本和Docker 1.17+版本。
  2. 进入项目目录中的cmd,执行以下命令(Windows环境),若为Mac或Linux环境不需要带后缀.exebash go build -o dubhe.exe
  3. 利用生成的执行文件执行以下命令,-c或者-config指定配置文件: bash dubhe.exe -c <配置文件> 配置文件模板如下: ```toml workspace = "E:\dubhe-workspace"

capacity = 2

[http] address = ":8000"

[server] address = ":9090" network = "tcp"

[database] debug = false db_type = "sqlite3" dsn = "dubhe.db" max_lifetime = 7200 max_open_conns = 150 max_idle_conns = 50

[log] level = 5 format = "nested" info_path = "" error_path = ""

[jwt] signing_key = "gJbQry0vb02IjHQyKWlxQwZAwwZ7IC0e" expired = 7200

[super_user] nickname = "Admin" username = "admin" password = "admin" ```

使用

  1. 在相关项目根目录编写.dubhe.yml,以下是样例: ```yaml kind: pipeline type: docker name: default

steps: - name: test image: maven:3.6.3-openjdk-8-slim commands: - mvn test volumes: - name: repository path: /root/.m2

  • name: build image: maven:3.6.3-openjdk-8-slim commands:

    • mvn -U clean package -Dmaven.test.skip=true volumes:
    • name: repository path: /root/.m2
  • name: verification image: alpine:latest commands:

    • if [ -e ruoyi-admin/target/*.jar ]; then exit 0; else exit 1; fi

volumes: - name: repository host: path: /Users/janyd/.m2 `` 2. 在Dubhe`中添加仓储并配置好Git代码,提交代码到Git仓库,Dubhe将自动触发构建。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】