Oepkgs(Open External Packages Service) Building System and repo

In this article, the administrator of this building system will be short as admin. The maintainer of packages and owner of repos, will submit in source code repo and trigger building in system, will be short as engineer.

This repo is used for configuration of oepkgs building system, and it will be imported to system database.

Intro and structure

overview chart

Composition

  1. Gitee

    • User info repo

      New engineer should clone and submit PR (Pull Request) to announce admin a new register and provides details. Admin will check the info and assistant engineer to maintain user info of engineer.

    • Package buiding info repo

      Engineer will own a info repo in system to control the building process. Engineer should create and maintain this repo before register URL of this repo.

    • Source code repo

      Engineer will own and maintain source repo, the relation between source repo and building info repo will be descriptive in building info repo.

    • Client tools

      Engineer use this to control the tasks follow the info in building info repo.

    • Server tools

      Admin use it to manage the user info.

  2. Based on Huaiwei cloud server cluster

    • Koji server [a virtual server]
      • Koji service
      • Jenkins service
      • RESTful API
      • Nginx reverse proxy
    • Koji Builder [many virtual servers]
      • aarch64 builders
      • x86_64 builders
      • RISC-V builders (to be added)
    • NFS storage services
      • Development resources
      • Linux Distros REPOs

Intro of building process

  1. Engineer‘s operation in a source code repo including push, merge etc, will trigger a webhook registered in Gitee by Jenkins.(This relied on correct configuration by engineer)
  2. Engineer should use pmtools client &9314;** to confirm configuration and Create task in system. After that, Jenkins Gitee plugin can be triggered by webhook.
  3. Jenkins Gitee Plugin will submit compiling task to Koji hub (a Koji server component), and get the status of compiling till task finished.
    • Koji Hub will assign tasks to Koji Builder available.
    • Jenkins will copy all RPM packages to repo(in NFS storage service) and update repo info, if succeed.
  4. Jenkins will collect all task info and comment under Git repo commit page.

Repos lists

Repos of community list, see Appendix 1

All Git repos used are hosting on oepkgs.net offical repo on Gitee

Contributors

Copyright © oepkgs.net All rights reserved.

版权所有 © oepkgs.net 保留所有权利

中国科学院软件研究所openEuler 社区共同发起并提供支持

京ICP备05046678号-13

Email: support(at)oepkgs.net