111 lines
2.6 KiB
Markdown
111 lines
2.6 KiB
Markdown
<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 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-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 |