Skip to content

Latest commit

 

History

History
92 lines (56 loc) · 2.59 KB

File metadata and controls

92 lines (56 loc) · 2.59 KB

engine-java

This is just an example how to extend the engine-ci for other languages or how to customize it for your own needs and requirements.

This repository adds Java-specific build logic and includes an integration test project to ensure end-to-end compatibility with the engine-ci build system.


Overview

engine-java enables seamless Java builds within the ContainifyCI ecosystem.
It leverages the same declarative build definition as engine-ci and adds Maven-specific build steps and conventions.

Key highlights:

  • Maven-based build and packaging support
  • Full integration with engine-ci pipelines
  • Includes a complete integration test project
  • Designed for extensibility and reuse across multiple Java projects

How It Works

engine-java is a build extension that plugs into engine-ci’s build service.
It detects Java projects, runs Maven commands (such as mvn clean package), and exports build artifacts for downstream usage or release automation.

Under the hood:

  • It uses the same build execution flow and container orchestration as engine-ci.
  • The build process runs inside isolated containers for reproducibility.
  • Artifacts and logs are automatically collected by engine-ci.

Integration Test Example

The repository includes a small Java web app used for testing:

testdata/hello-world-servlet/

This sample project:

  • Demonstrates how a typical Java Maven project is built using engine-java.
  • Is used in CI integration tests to verify that builds run successfully inside engine-ci environments.

You can manually run the integration test locally to validate your setup.


▶ Running Locally

Make sure you have engine-java installed.

go install github.com/containifyci/engine-java@latest

Then you can trigger a build using:

engine-java run

This will automatically load engine-java and execute the Maven build steps defined in the extension.


Requirements

  • Golang >= 1.25
  • Docker or Podman (for build isolation)

Contributing

Contributions are welcome! If you want to add new Java build features or integrations, please open a pull request in the engine-java repo.


License

Licensed under the Apache 2.0 License.


Part of the ContainifyCI Ecosystem