Engineer guide

Engineer indicates package maintainers of


You should register in community first, if you want to contribute as engineer. Admin will check the information you provided and accept register if info confirmed. Engineers be capable to use service to build and publish packages.

Please follow register flow to register.

Manage building task

You can use an online git repo to control your tasks and publish repo after register succeed. The hosted on Gitee, created and controlled by engineer. The URL and active branch name in system should be sent to admin when register.

Please follow Jobs management to manage your repo and task.

Trigger building

Task will run on source code repo webhook trigger. This trigger relies on engineer‘s configuration in source code repo, which descriptive in Gitee Webhook configuration guide.

Manage personal password

Personal password is used for authentication when operating in system, which need set by engineer with initial password. The initial password is sent to engineer by admin on register. The initial password can ONLY used for set engineer‘s password, and ONLY valid once.

Structure of user task repo

This repo is created and maintained by engineer after succeed register. the paths and filename are just advice. However, JSON file format should be followed strictly.

└── projects
    └── openEuler (Name of distro or OS)
        └── 20.03-LTS (Version of distro or OS)
            └── archive (Categories of package)
                └── x (First letter of package name)
                    └── xz (package name)
                        └── openEuler_20.03-LTS_archive_xz_job1.json (Task or job description file)

JSON file path and naming suggestion

Above rules are just a suggestion of how to organize, users may create new rules by themselves, remember all tasks must not be given duplicate name in principle.

JSON file sturcture

All project info JSON files should be placed under user self maintained projects directory. The path is advised like below, to avoid duplicate name of tasks.


<>: required

[]: optional

  • <distro_or_OS_name>: name
  • < version>: version
  • <software_type>: Categories in: Packages, Image, or others.
  • [first_letter_of_software_name]: for category package to avoid to many files in a directory
  • <software_name>: package name
  • <job_name>.json: task name,Capable to create multi tasks for same package(repo,branch,publish repo, etc.)

pmtools basically usage

pmtools task management

pmtools is engineer‘s tool for task and info management.

Engineer should use this tool to manage tasks after register. follow steps below:

  1. Create a task descripton JSON file in projects repo, commit and push

  2. Import the update info to system by pmtools

$ ./oepkgs_pmtools -u username -p passphrase UpdateConfig [-r/--reset] 
  1. Create, delete or modify task in system after update projects repo.
$ ./oepkgs_pmtools -u username -p passphrase CreateJob/UpdateJob/DeleteJob --rpath path/to/project_name.json
  1. Jenkins task triggered by webhook, using pmtool JobInfo to get info to set webhook
$ ./oepkgs_pmtools -u username -p passphrase JobInfo

pmtools personal info control

Engineer will get a passphrase from admin after register or requested reset. However, when this single use passphrase got, it only can be used to change password, engineer won’t do any other operation in system before password changed.

$ ./oepkgs_pmtools -u username -p passphrase passwd -n/--new new-passphrase

Copyright © All rights reserved.

版权所有 © 保留所有权利

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


Email: support(at)