As a developer, I want to run qrun package to build a deployable OCI image from my QQQ application so that I can deploy it to any container platform.
Design
Command Interface
# Build with defaults from qrun.yaml
qrun package
# Build with specific tag
qrun package --tag myapp:v1.2.3
# Build to local Docker daemon
qrun package --docker
# Build to tarball
qrun package --local --output ./myapp.tar
# Specify base image override
qrun package --base eclipse-temurin:21-jre-alpine
# Skip tests during build
qrun package --skip-tests
Build Workflow
1. Detect project type (Maven/Gradle)
2. Run build (mvn package / gradle build)
3. Locate application JAR
4. Parse qrun.yaml for configuration
5. Build OCI image with Jib
6. Output digest and tag
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Part of #13
User Story
As a developer, I want to run
qrun packageto build a deployable OCI image from my QQQ application so that I can deploy it to any container platform.Design
Command Interface
Build Workflow
Output Format
Exit Codes
Files to Create/Modify
PackageCommand.javaProjectDetector.javaMavenBuilder.javaJarLocator.javaBuildResult.javaImplementation Tasks
PackageCommandwith Picocli annotationsqrun.yamlfor packaging configJibBuilderto create image--tagoption--dockeroption--localoption with--output--baseoverride--skip-testsflagAcceptance Criteria
qrun packagebuilds image from Maven projectqrun.yaml--dockerloads to local Docker daemon--localcreates tarball file