Files
pommer/readme.md
2025-05-21 19:22:29 +02:00

111 lines
2.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div style="text-align: center;">
<img src="logo.png" alt="logo image" height="50">
</div>
---
**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 `master` branch.
---
## ⚠️ 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.sh` script** for local Maven testing
* 🎯 **Configurable**: Target a specific directory or file
---
## Usage
No installation required. Just run with Python 3:
```bash
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:
```bash
python3 pommer.py --dir path/to/project
```
* Use a specific POM file:
```bash
python3 pommer.py --specific-pom path/to/pom.xml
```
---
## Output
* 📄 **Gitea Workflow:**
`.gitea/workflows/build.yaml`
Automates build and artifact upload for all detected Maven projects.
* 🔧 **Build Script:**
`build.sh`
Local 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 its 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-support` branch.
* 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