Pommer 🍟
Pommer is an internal Python tool designed to streamline CI workflow generation for Java/Kotlin Maven projects. It scans for pom.xml files, analyzes project metadata, and generates a Gitea CI workflow along with a local build script.
⚠️ Internal Use Only
This tool is for internal use within Gitea only. Do not distribute or share to outsiders.
Features
- Automatic discovery of all
pom.xmlfiles in a repository. - Parses project metadata (artifactId, groupId, version, Java/Kotlin detection, etc.).
- Generates a Gitea CI workflow compatible with multi-module Maven projects.
- Creates a local
build.shscript for convenience. - Configurable: Target a specific directory or POM file.
Usage
No installation required. Run directly with Python 3.
python3 pommer.py
Options
| Option | Description |
|---|---|
-d, --dir |
Base directory to scan for pom.xml files (default: .) |
-p, --specific-pom |
Path to a specific pom.xml file to process |
Examples
- Scan a specific directory:
python3 pommer.py --dir path/to/project - Use a specific POM file:
python3 pommer.py --specific-pom path/to/pom.xml
Output
-
Gitea Workflow:
.gitea/workflows/maven_build.yaml
Automates build and artifact upload for all detected Maven projects. -
Build Script:
build.sh
Simple script for local Maven builds.
Comment on Compile Times with CI/CD :
Currently installing JDK and finishing up the Proccess takes ages! If it is stuck on "Downloading JDK 21" for a few minutes just wait. If you arent sure if its actually doing stuff ; check the Network Usage of the Server. If it is 0 for a long time then restart the Runner! Finishing up also takes ages ; but that usually doesn't get stuck as often. But if just reboot!
For big Projects it might take a while ; if compiling via Maven on your local Instance takes ages ; it will take even longer on Gitea CI/CD!
Requirements
- Python 3.7+
- Only standard Python libraries required
Notes
- The workflow uses the highest Java version detected among all modules.
- Kotlin support is detected automatically.
- For internal CI/CD use only.
Support
For questions or issues, contact [Internal Team/Contact Person].
License
Internal Use Only – Not for Distribution
