This is an automated email from the ASF dual-hosted git repository. zstan pushed a commit to branch ignite-3.1.0 in repository https://gitbox.apache.org/repos/asf/ignite-3.git
commit 2a86279ecdb11930168234978fe0818d748e153f Author: Artem Egorov <[email protected]> AuthorDate: Wed Oct 15 17:16:24 2025 +0300 IGNITE-24408 Build and provide multiarch docker builds (#6778) --- RELEASE.md | 24 ++++++++++++++++++++---- packaging/build.gradle | 14 +++++++++++++- 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/RELEASE.md b/RELEASE.md index d0c5bcbba93..406060623e4 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -2,6 +2,14 @@ This document describes the current procedure for preparing an Ignite 3 release. +## Requirements + +1. **Docker 19.03+** + * Verify docker installation: `docker version` + * Verify docker buildx installation: `docker buildx version` +2. **.NET SDK 8.0.407+** + * Verify .NET installation: `dotnet --version` + ## Prerequisites 1. Create a GPG key, upload it to a keyserver, and locate its ID. More details here: https://infra.apache.org/openpgp.html @@ -68,17 +76,24 @@ For all the commands going forward: ``` ./gradlew -PprepareRelease prepareRelease -Pplatforms.enable ``` -12. Copy all packages along with checksums and signatures to the development distribution directory: +12. Create Docker Images: + ``` + ./gradlew :packaging:docker -Ptarget_platform=linux/amd64 -Pplatforms.enable + docker save apacheignite/ignite:VERSION -o packaging/build/release/ignite:VERSION-amd64.tar + ./gradlew :packaging:docker -Ptarget_platform=linux/arm64 -Pplatforms.enable + docker save apacheignite/ignite:VERSION -o packaging/build/release/ignite:VERSION-arm64.tar + ``` +13. Copy all packages along with checksums and signatures to the development distribution directory: ``` cp packaging/build/release/* {dist.dev}/{version}-rc{rc} ``` -13. Commit ZIP and DEB\RPM packages: +14. Commit ZIP and DEB\RPM packages: ``` cd {dist.dev} svn add {version}-rc{rc} svn commit -m “Apache Ignite {version} RC{rc}” ``` -14. Put the release on a vote on the developers mailing list. +15. Put the release on a vote on the developers mailing list. ## Finalizing the Release @@ -107,7 +122,8 @@ Perform the following actions ONLY after the vote is successful and closed. * .NET: `./gradlew :platforms:aggregateDotnetDocs` * C++: `./gradlew :platforms:doxygenCppClient` * Push to https://github.com/apache/ignite-website/tree/master/releases -7. Publish Docker images: `./gradlew :packaging:docker -Pplatforms.enable` (TODO - see [IGNITE-24408](https://issues.apache.org/jira/browse/IGNITE-24408)) +7. Publish Docker images: + * `./gradlew :packaging:docker -Ptarget_platform=linux/amd64,linux/arm64 -Pdocker_push -Pplatforms.enable` 8. Publish NuGet packages: * Get API key from https://svn.apache.org/repos/private/pmc/ignite/credentials/nuget.org (PMC only) * `for i in *.nupkg; do dotnet nuget push $i -k API_KEY_HERE -s "https://nuget.org/"; done` diff --git a/packaging/build.gradle b/packaging/build.gradle index 6c171b7027b..28467323185 100644 --- a/packaging/build.gradle +++ b/packaging/build.gradle @@ -86,12 +86,24 @@ def replaceVars = tasks.register('replaceVars', Copy) { into "$buildDir/docker" } -ext.docker_image_name = "apacheignite/ignite" +ext.docker_image_name = "apacheignite/ignite:${project.projectVersion.toString()}" docker { name project.docker_image_name dockerfile file('docker/Dockerfile') + if (project.hasProperty('target_platform')) { + platform project.properties["target_platform"] + buildx true + } + + if (project.hasProperty('docker_push')) { + load false + push true + } else { + load true + } + copySpec.into 'dist', { into('') { fileMode 0755
