This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to branch issue/SLING-13289
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-committer-cli.git

commit c3f4005ec65376a1b96ce5ef915bb1b88d1f5d19
Author: Robert Munteanu <[email protected]>
AuthorDate: Wed Aug 5 17:52:02 2026 +0200

    SLING-13289 - Push Sling Committer CLI image to DockerHub
    
    - configure GitHub action to push to DockerHub
    - allow multi-arch builds
    - set image to apache/sling-committer-cli as it better reflects its purpose
      as compared to apache/sling-cli
    - updated documentation
---
 README.md | 30 +++++++++++++++---------------
 pom.xml   | 13 ++++++++++++-
 2 files changed, 27 insertions(+), 16 deletions(-)

diff --git a/README.md b/README.md
index 8f17c15..bad6120 100644
--- a/README.md
+++ b/README.md
@@ -89,27 +89,27 @@ password in `~/.m2/settings-security.xml`:
 
 ## Building
 
-The Docker image (`apache/sling-cli:latest`) is produced by the `docker:build` 
goal of the
+The Docker image (`apache/sling-committer-cli:latest`) is produced by the 
`docker:build` goal of the
 [fabric8 docker-maven-plugin](https://dmp.fabric8.io/). The image bundles the 
project jar via the
 generated `*-app.slingfeature` descriptor; the `slingfeature-maven-plugin` 
resolves the project's
 own bundle from the reactor, so the image always contains the jar built in the 
same invocation.
 
 A single command builds (and tests) the project and the image:
 
-    mvn clean package docker:build
+    mvn clean install
 
-No prior `mvn install` is needed. The `docker:build` execution is also bound 
to the `package`
-phase, so the CI build (`mvn package`) builds the image too.
+The `docker:build` execution is bound to the `install` phase, so the CI build 
(`mvn install`)
+builds the image too. Image pushes are skipped by default.
 
 To confirm the image contains the expected commands:
 
-    docker run --env-file=./docker-env apache/sling-cli release help
+    docker run --env-file=./docker-env apache/sling-committer-cli release help
 
 ## Launching
 
 After building, run the image with:
 
-    docker run --env-file=./docker-env apache/sling-cli
+    docker run --env-file=./docker-env apache/sling-committer-cli
 
 This invocation produces a list of available commands.
 
@@ -124,7 +124,7 @@ The commands can be executed in 3 different modes:
 
 To select a non-default execution mode provide the mode as an argument to the 
command:
 
-    docker run -it --env-file=./docker-env apache/sling-cli release 
prepare-email --repository=$STAGING_REPOSITORY 
+    docker run -it --env-file=./docker-env apache/sling-committer-cli release 
prepare-email --repository=$STAGING_REPOSITORY
     --execution-mode=INTERACTIVE
 
 Note that for running commands in the `INTERACTIVE` mode you need to run the 
Docker container in interactive mode with a pseudo-tty 
@@ -168,46 +168,46 @@ After `release:perform` has staged the artifacts, drive 
the rest with the CLI:
 0. **Find the staging repository id** if you did not capture it. `release 
list` shows every staging
    repo with its `[open]`/`[closed]` state and description; a freshly staged 
one is `[open]`:
 
-       docker run --env-file=./docker-env apache/sling-cli release list
+       docker run --env-file=./docker-env apache/sling-committer-cli release 
list
 
 1. **Close** the staging repository. The description is derived automatically 
from the staged POM's
    `<name>` + `<version>` (e.g. _Apache Sling Feature Model Launcher 1.3.6_) 
by browsing the
    repository content, so it works even though an open repository is not yet 
in the Lucene index:
 
-       docker run --env-file=./docker-env apache/sling-cli release 
close-staging --repository=$STAGING_REPOSITORY_ID --execution-mode=AUTO
+       docker run --env-file=./docker-env apache/sling-committer-cli release 
close-staging --repository=$STAGING_REPOSITORY_ID --execution-mode=AUTO
 
 2. **Verify** the artifacts' signatures, hashes and CI status:
 
-       docker run --env-file=./docker-env apache/sling-cli release verify 
--repository=$STAGING_REPOSITORY_ID
+       docker run --env-file=./docker-env apache/sling-committer-cli release 
verify --repository=$STAGING_REPOSITORY_ID
 
 3. **Generate the vote email**:
 
-       docker run --env-file=./docker-env apache/sling-cli release 
prepare-email --repository=$STAGING_REPOSITORY_ID --execution-mode=AUTO
+       docker run --env-file=./docker-env apache/sling-committer-cli release 
prepare-email --repository=$STAGING_REPOSITORY_ID --execution-mode=AUTO
 
 4. After the 72h vote, **tally the votes** and generate the result email. PMC 
membership is detected
    automatically from your ASF id: if you are a PMC member the email says you 
will copy the release to
    the dist directory yourself; otherwise it asks a PMC member to perform the 
dist upload:
 
-       docker run --env-file=./docker-env apache/sling-cli release tally-votes 
--repository=$STAGING_REPOSITORY_ID --execution-mode=AUTO
+       docker run --env-file=./docker-env apache/sling-committer-cli release 
tally-votes --repository=$STAGING_REPOSITORY_ID --execution-mode=AUTO
 
 5. **Finalize** the release (post successful vote). This runs, in order: 
promote to Maven Central,
    create the next Jira version, release the current Jira version, and update 
the Apache Reporter:
 
-       docker run --env-file=./docker-env apache/sling-cli release finalize 
--repository=$STAGING_REPOSITORY_ID --execution-mode=AUTO
+       docker run --env-file=./docker-env apache/sling-committer-cli release 
finalize --repository=$STAGING_REPOSITORY_ID --execution-mode=AUTO
 
    When the current user is detected as a PMC member, `finalize` additionally 
publishes to
    `dist.apache.org` (requires `subversion`, which is bundled in the image). 
The previous version to
    remove from `dist/release` is deduced automatically from the directory 
contents, so no extra flag
    is needed:
 
-       docker run --env-file=./docker-env apache/sling-cli release finalize 
--repository=$STAGING_REPOSITORY_ID --execution-mode=AUTO
+       docker run --env-file=./docker-env apache/sling-committer-cli release 
finalize --repository=$STAGING_REPOSITORY_ID --execution-mode=AUTO
 
    PMC membership is determined from your ASF id (via Whimsy). A non-PMC 
committer's `finalize` skips
    the dist upload and the `tally-votes` result email asks a PMC member to 
perform it.
 
 If the vote does not pass, **drop** the staging repository:
 
-    docker run --env-file=./docker-env apache/sling-cli release drop 
--repository=$STAGING_REPOSITORY_ID --execution-mode=AUTO
+    docker run --env-file=./docker-env apache/sling-committer-cli release drop 
--repository=$STAGING_REPOSITORY_ID --execution-mode=AUTO
 
 ### Command reference
 
diff --git a/pom.xml b/pom.xml
index 3e34745..247e655 100644
--- a/pom.xml
+++ b/pom.xml
@@ -30,6 +30,11 @@
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         
<project.build.outputTimestamp>2026-01-01T00:00:01Z</project.build.outputTimestamp>
         <sling.java.version>21</sling.java.version>
+        <docker.skip.push>true</docker.skip.push>
+        <docker.image.name>apache/sling-committer-cli</docker.image.name>
+        <docker.image.tag>latest</docker.image.tag>
+        <!-- pass a list of platforms to enable multi-arch builds: 
linux/amd64,linux/arm64 -->
+        <docker.platforms />
     </properties>
 
     <dependencies>
@@ -311,12 +316,17 @@
                 <configuration>
                     <images>
                         <image>
-                            <name>apache/sling-cli</name>
+                            
<name>${docker.image.name}:${docker.image.tag}</name>
                             <build>
                                 <contextDir>${project.basedir}</contextDir>
                                 <args>
                                     
<FEATURE_FILE>target/artifacts/org/apache/sling/${project.artifactId}/${project.version}/${project.artifactId}-${project.version}-app.slingfeature</FEATURE_FILE>
                                 </args>
+                                <buildx>
+                                    <platforms>
+                                        
<platform>${docker.platforms}</platform>
+                                    </platforms>
+                                </buildx>
                             </build>
                         </image>
                     </images>
@@ -326,6 +336,7 @@
                         <id>default</id>
                         <goals>
                             <goal>build</goal>
+                            <goal>push</goal>
                         </goals>
                     </execution>
                 </executions>

Reply via email to