2.6 KiB
Pommer is an internal Python tool designed to streamline CI workflow generation for Java/Kotlin projects using Maven. It scans your project for pom.xml files, analyzes project metadata, and generates a Gitea CI workflow along with a local build script for convenience.
⚙️ This is the stable, Maven-only branch. For Gradle support, switch to the
masterbranch.
⚠️ Internal Use Only
This tool is for internal use within the local Gitea Instance only. Do not distribute or share externally.
Features
- 🔍 Automatic discovery of Maven projects (
pom.xml) - 📦 Parses project metadata (artifact ID, group ID, version, Java/Kotlin usage, etc.)
- 🏗️ Generates a Gitea CI workflow, compatible with multi-module Maven setups
- 🧪 Creates a
build.shscript for local Maven testing - 🎯 Configurable: Target a specific directory or file
Usage
No installation required. Just run with Python 3:
python3 pommer.py
Options
| Option | Description |
|---|---|
-d, --dir |
Base directory to scan (default: .) |
-p, --specific-pom |
Path to a specific pom.xml file |
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/build.yamlAutomates build and artifact upload for all detected Maven projects. -
🔧 Build Script:
build.shLocal script to build all Maven projects easily.
⚡ CI/CD Compile Time Notice
⚠️ Slow compile or stuck builds?
- Installing JDK and setting up the runner can take time.
- If it’s stuck on "Downloading JDK 21", be patient and check network usage.
- No activity? → Restart the runner.
- Final build steps are slow but usually fine.
- Local builds slow? → Expect slower CI/CD times.
Requirements
- Python 3.7+
- No third-party dependencies (standard library only)
Notes
- This branch only supports Maven.
- For Gradle support, use the
gradle-supportbranch. - Java/Kotlin usage is detected automatically.
- The workflow uses the highest JDK version found.
Support
Contact rattatwinko for help or feature requests.
License
Internal Use Only – Not for Distribution
More details are in pommer.py
