4 Star 0 Fork 0

weitengfei / cicd_test_develop

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

ci_tool

介绍

依托于华为云&jenkins 自动化执行的CI门禁工具,包含流水线编译、打包、测试及静态检查

软件架构

/ci_tool
├── BuidDataCollectionSvr                        # 数据服务层
│   ├── BuidDataCollectionSvr.py                 # 主服务文件 flask 提供多个接口包括:分组服务、邮件发送、配置更新、资源利用率/构建数据查询
│   ├── comuptebuildgroup.py                     # 分组服务计算
│   ├── refresh_build_statistics.py              # 定期刷新构建数据
│   └── cvr_function.py                          # 数据服务使用的函数
├── ci_build                                     # 流水线构建脚本层
│   ├── ci_build.py                              # 门禁构建主脚本
│   ├── cloud_build.py                           # 云端构建主脚本
│   ├── fetch_pr.py                              # 拉取pr
│   ├── find404forCI.py                          # docs仓业务提供检查脚本
│   ├── findCNforCI.py                           # docs仓业务提供检查脚本
│   ├── findrela404forCI.py                      # docs仓业务提供检查脚本
│   ├── format_check.py                          # 格式化检查脚本 主要包括gn格式化检查和docs仓检查
│   ├── project_build.py                         # 执行编译
│   ├── reduce_unstripped_tdd_file.py            # tdd用例精简脚本(测试领域定制)
│   ├── sync_code.py                             # repo init & repo sync 、打running点
│   └── upload_result_to_mongo.py                # 上传打包文件、构建log、打end点闭环编译
├── ci_conf                                      # 工具配置层
│   ├── .ssh                                     # 已配置好公共账号信息的ssh
│   ├── .gitconfig                               # 已配置好公共账号信息的gitconfig
│   ├── common_config.py                         # 共用配置 用于各模块调用生成配置对象
│   ├── docker_file                              # 存放门禁自己制作镜像的Dockerfile
│   └── kube_yaml                                # 存放kubenetes集群相关yaml文件
├── common                                       # 共用脚本收纳层
│   ├── Gitee_api.py                             # 码云api操作
│   ├── common_function.py                       # 一些共用函数
│   ├── datacenter.py                            # 华为云DDS mongo数据库操作
│   ├── manifest.py                              # manifest类 操作manifest xml
│   └── rabbitmq_handle.py                       # rabbitmq操作函数
├── consume_project                              # 消息消费脚本收纳层
│   ├── consume_end_to_be_finish.py              # jenkins定时触发 将满足条件(所有pipeline为end)的event事件currentStatus置为end
│   ├── consume_event_finish.py                  # jenkins定时触发 消费event状态为finish的数据 监控test和codecheck完成情况 打回报告到码云 闭环event打点 发送邮件 私信
│   ├── consume_mq_schedule.py                   # jenkins定时触发 消费CC_Build_Task_Dispatch队列消息 生成各资源池构建唯一构建号,打schedule点,并将数据推送到各资源池队列中
│   ├── consume_schedule.py                      # jenkins定时触发 消费各资源池队列消息 资源不足时排队,按优先级消费调起流水线 并将pipeline状态置为trigger
│   ├── consume_submit.py                        # 合入队列消费脚本 定时从合入队列取任务,合入并发布tag
│   ├── submit.py                                # 合入脚本 webhook触发式,检查PR是否满足合入条件并将合入信息推送到合入队列
│   ├── watch_timeout_event.py                   # 看护event,若120分钟仍未结束,则强制关闭该event
│   └── watch_timeout_pipeline.py                # 看护pipeline,处理异常流水线状态
├── daily_build                                  # 每日构建层
│   ├── daily_build.py                           # 每日构建主脚本
│   ├── daily_pipeline_apscheduler.py            # 每日构建定时触发器
│   ├── daily_pipeline_monitor.py                # jenkins定时触发 扫描daily流水线状态,并打点供看板使用
│   └── simple_sync_code.py                      # daily流水线下载代码脚本 不涉及挑单
├── interception_control                         # 管控拦截层
│   ├── branch_owner_control.py                  # 要求特定分支的PR合入前需要特定人员审核评论approve
│   ├── create_translation_issue.py              # docs仓业务定制,自动提ISSUE
│   ├── dco_control.py                           # 要求开发者在社区贡献前签署贡献协议DCO
│   ├── interception_controller.py               # 管控拦截控制器,所有管控拦截入口
│   ├── static_check.py                          # 单独触发静态检查脚本
│   └── translation.yaml                         # docs仓业务定制配置
├── other_tools                                  # 其他工具收纳层
│   ├── datacenter_clean.py                      # 自动清理数据库过期数据,打包归档到obs,删除过期数据
│   ├── generate_monthly_statistical_reports.py  # 生成月度构建统计数据报告
│   ├── get_merged_pr_list_by_tag_collection.py  # 获取指定时间段合入的PR列表,写入last_merged_pr_list.txt文件,供后续使用
│   ├── refresh_manifest_file.py                 # redis存储manifest自动刷新 webhook触发
│   ├── refresh_precise_dile.py                  # redis存储精准构建关系自动刷新 jenkins定时触发
│   ├── sync_mongo_cfg_to_consul.py              # 将数据库配置同步到consul配置中心
│   └── trace_to_html_upload.py                  # 下载将给定的trace包,调用工具生成火焰图html文件
└── CC_Build_Task_Dispatch_Jenkins.py            # 事件处理脚本 用于接收PR评论start build事件,调用分组服务,计算需要构建形态,生成schedule数据传入队列

使用说明

  1. 本项目面向Gitee harmonyos开源社区,提供社区代码上库持续集成构建服务
  2. 本项目依赖华为云 ECS devcloud DDS OBS SWR ELB 依赖jenkins
  3. 使用本项目前,您需要准备如下内容:
    • 码云Gitee账号,并申请一个企业
    • 华为云账号,开通devcloud DDS OBS SWR ELB等服务
    • 在华为云购买几台ECS供jenkins master搭建和流水线构建
  4. 服务搭建请参考docs目录下各指导文档

参与贡献

  1. Fork 本仓库
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request

空文件

简介

本仓库为cicd个人测试仓库 展开 收起
Python 等 3 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/weitengfei_op/cicd_test_develop.git
git@gitee.com:weitengfei_op/cicd_test_develop.git
weitengfei_op
cicd_test_develop
cicd_test_develop
master

搜索帮助