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

2.6 KiB
Raw Blame History

logo image

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:

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.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