-
Additional Suggestion: Two-Level Job Import Configuration
It would be even better if OneDev could support customizable job import rules at two levels:
1. Global Configuration (Shared CI/CD Template)
Allow the shared CI/CD template to define which jobs are available or enabled for import by default.
Support three modes:
- All – Include all jobs.
- Include Only – Include only selected jobs.
- Exclude – Include all jobs except selected jobs.
This would allow administrators to centrally manage default job import policies across projects.
2. Project-Level Configuration (Individual Projects)
Allow each application project to customize which jobs it imports from the shared template.
Support the same three modes:
- All – Import all available jobs.
- Include Only – Import specific jobs.
- Exclude – Import all except specified jobs.
Additionally, provide an Inherit Default option to follow the global configuration.
Expected Behavior
- Global settings provide centralized default import rules.
- Project-level settings allow each project to customize its imported jobs.
- Project-level overrides should take precedence over global defaults, within the jobs permitted by the shared template.
- Changes to the shared template should automatically propagate to projects inheriting its configuration.
- Only jobs selected for import should appear in the project's available job list and manual build execution options.
Example
A shared CI/CD template contains:
- Backend Build
- Frontend Build
- Backend Release
- Frontend Release
- AI Code Review
- Quality Report
Different projects may have different requirements:
- Backend Project: Backend Build, Backend Release, AI Code Review, Quality Report
- Frontend Project: Frontend Build, Frontend Release, AI Code Review
- Small Utility Project: Backend Build only
With this two-level configuration, teams could maintain a single centralized CI/CD template while allowing each project to use only the jobs it needs.
This would significantly improve the flexibility and maintainability of shared CI/CD configurations in OneDev.
| Type |
Enhancement
|
| Priority |
Major
|
| Assignee | |
| Labels |
No labels
|
Type: Enhancement
Affected Version: 16.8.6
Priority: Normal
Problem
We use a centralized project to maintain reusable CI/CD jobs, which are imported into multiple application projects through
.onedev-buildspec.yml.However, imported jobs cannot be manually executed from the project's Builds page. Attempting to run them results in a "Job not found" error.
These jobs are available and can be executed from Code → Files or Code → Commits.
Use Case
Our development workflow separates developers and testers:
Currently, testers cannot manually trigger imported build jobs from the Builds page.
As a workaround, we must either:
The second option defeats the purpose of centralized CI/CD job management and introduces unnecessary maintenance overhead.
Expected Behavior
Actual Behavior
Suggested Improvement
Please allow the Builds page to discover and execute imported jobs based on the selected branch or commit, while maintaining the existing permission model.
This would make centralized CI/CD job management practical for teams that separate development and testing responsibilities.