From 500db436a32aecd0ce220e8dc0bc09317fd180a7 Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Thu, 12 Sep 2024 22:04:27 +0000 Subject: [PATCH 01/34] adding graviton docker image --- .github/workflows/docker-nightly-build.yml | 32 ++++++- docker/build_image.sh | 8 +- docker/docker_nightly.py | 102 +++++++++++++-------- 3 files changed, 99 insertions(+), 43 deletions(-) diff --git a/.github/workflows/docker-nightly-build.yml b/.github/workflows/docker-nightly-build.yml index a46bf30653..6b6c0a12e2 100644 --- a/.github/workflows/docker-nightly-build.yml +++ b/.github/workflows/docker-nightly-build.yml @@ -1,10 +1,11 @@ name: Push Docker Nightly on: - # run every day at 1:15pm + # Run every day at 1:15pm schedule: - cron: "15 13 * * *" workflow_dispatch: + jobs: nightly: runs-on: [self-hosted, ci-gpu] @@ -37,7 +38,6 @@ jobs: run: | cd kubernetes/kserve python docker_nightly.py --cleanup - - name: Open issue on failure if: ${{ failure() && github.event_name == 'schedule' }} uses: dacbd/create-issue-action@v1 @@ -46,3 +46,31 @@ jobs: title: Nightly Docker build failed body: Commit ${{ github.sha }} daily scheduled [CI run](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}) failed, please check why assignees: "" + + graviton_job: + runs-on: [graviton-test] + steps: + - name: Clean up previous run on Graviton + run: | + echo "Cleaning up previous Graviton" + ls -la ./ + sudo rm -rf ./* || true + sudo rm -rf ./.??* || true + ls -la ./ + - name: Setup Python 3.9 on Graviton + uses: actions/setup-python@v5 + with: + python-version: 3.9 + architecture: aarch64 + - name: Checkout TorchServe + uses: actions/checkout@v3 + with: + submodules: recursive + - name: Login to Docker + env: + DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}} + run: docker login --username pytorchbot --password "$DOCKER_PASSWORD" + - name: Push Docker Nightly + run: | + cd docker + python docker_nightly.py --cleanup --arm diff --git a/docker/build_image.sh b/docker/build_image.sh index 650215a492..89801a63e5 100755 --- a/docker/build_image.sh +++ b/docker/build_image.sh @@ -18,6 +18,7 @@ BUILD_NIGHTLY=false BUILD_FROM_SRC=false LOCAL_CHANGES=true PYTHON_VERSION=3.9 +ARCH="linux/amd64" for arg in "$@" do @@ -39,6 +40,7 @@ do echo "-n, --nightly specify to build with TorchServe nightly" echo "-s, --source specify to build with TorchServe from source" echo "-r, --remote specify to use local TorchServe" + echo "-a, --arch to arm64" exit 0 ;; -b|--branch_name) @@ -101,6 +103,10 @@ do BUILD_CPP=true shift ;; + -a|--arch) + ARCH="linux/arm64" + shift + ;; -n|--nightly) BUILD_NIGHTLY=true shift @@ -218,7 +224,7 @@ if [ "${BUILD_TYPE}" == "production" ] then DOCKER_BUILDKIT=1 docker build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}"\ --build-arg BUILD_NIGHTLY="${BUILD_NIGHTLY}" --build-arg BRANCH_NAME="${BRANCH_NAME}" --build-arg REPO_URL="${REPO_URL}" --build-arg BUILD_FROM_SRC="${BUILD_FROM_SRC}"\ - --build-arg LOCAL_CHANGES="${LOCAL_CHANGES}" -t "${DOCKER_TAG}" --target production-image ../ + --build-arg LOCAL_CHANGES="${LOCAL_CHANGES}" -t "${DOCKER_TAG}" --platform "${ARCH}" --target production-image ../ elif [ "${BUILD_TYPE}" == "ci" ] then DOCKER_BUILDKIT=1 docker build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}"\ diff --git a/docker/docker_nightly.py b/docker/docker_nightly.py index 56479f22b2..e68f0d9733 100644 --- a/docker/docker_nightly.py +++ b/docker/docker_nightly.py @@ -28,60 +28,82 @@ action="store_true", help="Delete all built docker images", ) + parser.add_argument("--arm", action="store_true", help="Sets architecture to arm") args = parser.parse_args() dry_run = args.dry_run organization = args.organization project = "torchserve-nightly" cpu_version = f"{project}:cpu-{get_nightly_version()}" + graviton_version = f"{project}:cpu-graviton-{get_nightly_version()}" gpu_version = f"{project}:gpu-{get_nightly_version()}" cpp_dev_cpu_version = f"{project}:cpp-dev-cpu-{get_nightly_version()}" cpp_dev_gpu_version = f"{project}:cpp-dev-gpu-{get_nightly_version()}" # Build Nightly images and append the date in the name - try_and_handle(f"./build_image.sh -n -t {organization}/{cpu_version}", dry_run) - try_and_handle( - f"./build_image.sh -g -cv cu121 -n -t {organization}/{gpu_version}", - dry_run, - ) - try_and_handle( - f"./build_image.sh -bt dev -cpp -t {organization}/{cpp_dev_cpu_version}", - dry_run, - ) - try_and_handle( - f"./build_image.sh -bt dev -g -cv cu121 -cpp -t {organization}/{cpp_dev_gpu_version}", - dry_run, - ) + if args.arch: + try_and_handle( + f"./build_image.sh -n -a -t {organization}/{graviton_version}", dry_run + ) - # Push Nightly images to official PyTorch Dockerhub account - try_and_handle(f"docker push {organization}/{cpu_version}", dry_run) - try_and_handle(f"docker push {organization}/{gpu_version}", dry_run) - try_and_handle(f"docker push {organization}/{cpp_dev_cpu_version}", dry_run) - try_and_handle(f"docker push {organization}/{cpp_dev_gpu_version}", dry_run) + try_and_handle(f"docker push {organization}/{graviton_version}", dry_run) - # Tag nightly images with latest - try_and_handle( - f"docker tag {organization}/{cpu_version} {organization}/{project}:latest-cpu", - dry_run, - ) - try_and_handle( - f"docker tag {organization}/{gpu_version} {organization}/{project}:latest-gpu", - dry_run, - ) - try_and_handle( - f"docker tag {organization}/{cpp_dev_cpu_version} {organization}/{project}:latest-cpp-dev-cpu", - dry_run, - ) - try_and_handle( - f"docker tag {organization}/{cpp_dev_gpu_version} {organization}/{project}:latest-cpp-dev-gpu", - dry_run, - ) + try_and_handle( + f"docker tag {organization}/{cpu_version} {graviton_version}/{project}:latest-cpu-graviton", + dry_run, + ) + + try_and_handle( + f"docker push {organization}/{project}:latest-cpu-graviton", dry_run + ) + else: + try_and_handle(f"./build_image.sh -n -t {organization}/{cpu_version}", dry_run) + try_and_handle( + f"./build_image.sh -g -cv cu121 -n -t {organization}/{gpu_version}", + dry_run, + ) + try_and_handle( + f"./build_image.sh -bt dev -cpp -t {organization}/{cpp_dev_cpu_version}", + dry_run, + ) + try_and_handle( + f"./build_image.sh -bt dev -g -cv cu121 -cpp -t {organization}/{cpp_dev_gpu_version}", + dry_run, + ) + + # Push Nightly images to official PyTorch Dockerhub account + try_and_handle(f"docker push {organization}/{cpu_version}", dry_run) + try_and_handle(f"docker push {organization}/{gpu_version}", dry_run) + try_and_handle(f"docker push {organization}/{cpp_dev_cpu_version}", dry_run) + try_and_handle(f"docker push {organization}/{cpp_dev_gpu_version}", dry_run) + + # Tag nightly images with latest + try_and_handle( + f"docker tag {organization}/{cpu_version} {organization}/{project}:latest-cpu", + dry_run, + ) + try_and_handle( + f"docker tag {organization}/{gpu_version} {organization}/{project}:latest-gpu", + dry_run, + ) + try_and_handle( + f"docker tag {organization}/{cpp_dev_cpu_version} {organization}/{project}:latest-cpp-dev-cpu", + dry_run, + ) + try_and_handle( + f"docker tag {organization}/{cpp_dev_gpu_version} {organization}/{project}:latest-cpp-dev-gpu", + dry_run, + ) - # Push images with latest tag - try_and_handle(f"docker push {organization}/{project}:latest-cpu", dry_run) - try_and_handle(f"docker push {organization}/{project}:latest-gpu", dry_run) - try_and_handle(f"docker push {organization}/{project}:latest-cpp-dev-cpu", dry_run) - try_and_handle(f"docker push {organization}/{project}:latest-cpp-dev-gpu", dry_run) + # Push images with latest tag + try_and_handle(f"docker push {organization}/{project}:latest-cpu", dry_run) + try_and_handle(f"docker push {organization}/{project}:latest-gpu", dry_run) + try_and_handle( + f"docker push {organization}/{project}:latest-cpp-dev-cpu", dry_run + ) + try_and_handle( + f"docker push {organization}/{project}:latest-cpp-dev-gpu", dry_run + ) # Cleanup built images if args.cleanup: From 42491358270456087a8d694b56a5e29234f1ecc6 Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Fri, 13 Sep 2024 22:54:28 +0000 Subject: [PATCH 02/34] testing multiplatform ci --- .github/workflows/docker-nightly-build.yml | 64 ++++--------- docker/build_image.sh | 21 +++-- docker/docker_nightly.py | 102 +++++++++------------ 3 files changed, 74 insertions(+), 113 deletions(-) diff --git a/.github/workflows/docker-nightly-build.yml b/.github/workflows/docker-nightly-build.yml index 6b6c0a12e2..e5a0eb5852 100644 --- a/.github/workflows/docker-nightly-build.yml +++ b/.github/workflows/docker-nightly-build.yml @@ -2,9 +2,11 @@ name: Push Docker Nightly on: # Run every day at 1:15pm - schedule: - - cron: "15 13 * * *" - workflow_dispatch: + # schedule: + # - cron: "15 13 * * *" + # workflow_dispatch: + push: + branches: "docker_aarch" jobs: nightly: @@ -28,49 +30,21 @@ jobs: submodules: recursive - name: Login to Docker env: - DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}} - run: docker login --username pytorchbot --password "$DOCKER_PASSWORD" + DOCKER_PASSWORD: ${{secrets.UDAI_TEST}} + run: docker login --username udaij12 --password "$DOCKER_PASSWORD" - name: Push Docker Nightly run: | cd docker python docker_nightly.py --cleanup - - name: Push KServe Docker Nightly - run: | - cd kubernetes/kserve - python docker_nightly.py --cleanup - - name: Open issue on failure - if: ${{ failure() && github.event_name == 'schedule' }} - uses: dacbd/create-issue-action@v1 - with: - token: ${{ secrets.GITHUB_TOKEN }} - title: Nightly Docker build failed - body: Commit ${{ github.sha }} daily scheduled [CI run](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}) failed, please check why - assignees: "" - - graviton_job: - runs-on: [graviton-test] - steps: - - name: Clean up previous run on Graviton - run: | - echo "Cleaning up previous Graviton" - ls -la ./ - sudo rm -rf ./* || true - sudo rm -rf ./.??* || true - ls -la ./ - - name: Setup Python 3.9 on Graviton - uses: actions/setup-python@v5 - with: - python-version: 3.9 - architecture: aarch64 - - name: Checkout TorchServe - uses: actions/checkout@v3 - with: - submodules: recursive - - name: Login to Docker - env: - DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}} - run: docker login --username pytorchbot --password "$DOCKER_PASSWORD" - - name: Push Docker Nightly - run: | - cd docker - python docker_nightly.py --cleanup --arm + # - name: Push KServe Docker Nightly + # run: | + # cd kubernetes/kserve + # python docker_nightly.py --cleanup + # - name: Open issue on failure + # if: ${{ failure() && github.event_name == 'schedule' }} + # uses: dacbd/create-issue-action@v1 + # with: + # token: ${{ secrets.GITHUB_TOKEN }} + # title: Nightly Docker build failed + # body: Commit ${{ github.sha }} daily scheduled [CI run](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}) failed, please check why + # assignees: "" diff --git a/docker/build_image.sh b/docker/build_image.sh index 89801a63e5..af371f495c 100755 --- a/docker/build_image.sh +++ b/docker/build_image.sh @@ -18,7 +18,8 @@ BUILD_NIGHTLY=false BUILD_FROM_SRC=false LOCAL_CHANGES=true PYTHON_VERSION=3.9 -ARCH="linux/amd64" +ARCH="linux/amd64,linux/arm64" +MULTI=false for arg in "$@" do @@ -40,7 +41,6 @@ do echo "-n, --nightly specify to build with TorchServe nightly" echo "-s, --source specify to build with TorchServe from source" echo "-r, --remote specify to use local TorchServe" - echo "-a, --arch to arm64" exit 0 ;; -b|--branch_name) @@ -103,8 +103,8 @@ do BUILD_CPP=true shift ;; - -a|--arch) - ARCH="linux/arm64" + -m|--multi) + MULTI=true shift ;; -n|--nightly) @@ -221,10 +221,15 @@ then fi if [ "${BUILD_TYPE}" == "production" ] -then - DOCKER_BUILDKIT=1 docker build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}"\ - --build-arg BUILD_NIGHTLY="${BUILD_NIGHTLY}" --build-arg BRANCH_NAME="${BRANCH_NAME}" --build-arg REPO_URL="${REPO_URL}" --build-arg BUILD_FROM_SRC="${BUILD_FROM_SRC}"\ - --build-arg LOCAL_CHANGES="${LOCAL_CHANGES}" -t "${DOCKER_TAG}" --platform "${ARCH}" --target production-image ../ + if [ "${MULTI}" == "true"] + then + DOCKER_BUILDKIT=1 docker buildx build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}"\ + --build-arg BUILD_NIGHTLY="${BUILD_NIGHTLY}" --build-arg BRANCH_NAME="${BRANCH_NAME}" --build-arg REPO_URL="${REPO_URL}" --build-arg BUILD_FROM_SRC="${BUILD_FROM_SRC}"\ + --build-arg LOCAL_CHANGES="${LOCAL_CHANGES}" -t "${DOCKER_TAG}" --platform "${ARCH}" --target production-image ../ --push + else + DOCKER_BUILDKIT=1 docker buildx build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}"\ + --build-arg BUILD_NIGHTLY="${BUILD_NIGHTLY}" --build-arg BRANCH_NAME="${BRANCH_NAME}" --build-arg REPO_URL="${REPO_URL}" --build-arg BUILD_FROM_SRC="${BUILD_FROM_SRC}"\ + --build-arg LOCAL_CHANGES="${LOCAL_CHANGES}" -t "${DOCKER_TAG}" --target production-image ../ elif [ "${BUILD_TYPE}" == "ci" ] then DOCKER_BUILDKIT=1 docker build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}"\ diff --git a/docker/docker_nightly.py b/docker/docker_nightly.py index e68f0d9733..bf99ef128a 100644 --- a/docker/docker_nightly.py +++ b/docker/docker_nightly.py @@ -28,82 +28,64 @@ action="store_true", help="Delete all built docker images", ) - parser.add_argument("--arm", action="store_true", help="Sets architecture to arm") args = parser.parse_args() dry_run = args.dry_run organization = args.organization project = "torchserve-nightly" cpu_version = f"{project}:cpu-{get_nightly_version()}" - graviton_version = f"{project}:cpu-graviton-{get_nightly_version()}" gpu_version = f"{project}:gpu-{get_nightly_version()}" cpp_dev_cpu_version = f"{project}:cpp-dev-cpu-{get_nightly_version()}" cpp_dev_gpu_version = f"{project}:cpp-dev-gpu-{get_nightly_version()}" # Build Nightly images and append the date in the name - if args.arch: - try_and_handle( - f"./build_image.sh -n -a -t {organization}/{graviton_version}", dry_run - ) - try_and_handle(f"docker push {organization}/{graviton_version}", dry_run) - - try_and_handle( - f"docker tag {organization}/{cpu_version} {graviton_version}/{project}:latest-cpu-graviton", - dry_run, - ) + try_and_handle(f"./build_image.sh -m -n -t {organization}/{cpu_version}", dry_run) + try_and_handle( + f"./build_image.sh -g -cv cu121 -n -t {organization}/{gpu_version}", + dry_run, + ) + # try_and_handle( + # f"./build_image.sh -bt dev -cpp -t {organization}/{cpp_dev_cpu_version}", + # dry_run, + # ) + # try_and_handle( + # f"./build_image.sh -bt dev -g -cv cu121 -cpp -t {organization}/{cpp_dev_gpu_version}", + # dry_run, + # ) - try_and_handle( - f"docker push {organization}/{project}:latest-cpu-graviton", dry_run - ) - else: - try_and_handle(f"./build_image.sh -n -t {organization}/{cpu_version}", dry_run) - try_and_handle( - f"./build_image.sh -g -cv cu121 -n -t {organization}/{gpu_version}", - dry_run, - ) - try_and_handle( - f"./build_image.sh -bt dev -cpp -t {organization}/{cpp_dev_cpu_version}", - dry_run, - ) - try_and_handle( - f"./build_image.sh -bt dev -g -cv cu121 -cpp -t {organization}/{cpp_dev_gpu_version}", - dry_run, - ) + # Push Nightly images to official PyTorch Dockerhub account + try_and_handle(f"docker push {organization}/{gpu_version}", dry_run) + # try_and_handle(f"docker push {organization}/{cpp_dev_cpu_version}", dry_run) + # try_and_handle(f"docker push {organization}/{cpp_dev_gpu_version}", dry_run) - # Push Nightly images to official PyTorch Dockerhub account - try_and_handle(f"docker push {organization}/{cpu_version}", dry_run) - try_and_handle(f"docker push {organization}/{gpu_version}", dry_run) - try_and_handle(f"docker push {organization}/{cpp_dev_cpu_version}", dry_run) - try_and_handle(f"docker push {organization}/{cpp_dev_gpu_version}", dry_run) + # Tag nightly images with latest + try_and_handle( + f"docker buildx imagetools create --tag {organization}/{project}:latest-cpu {organization}/{cpu_version}", + dry_run, + ) + try_and_handle( + f"docker tag {organization}/{gpu_version} {organization}/{project}:latest-gpu", + dry_run, + ) + # try_and_handle( + # f"docker tag {organization}/{cpp_dev_cpu_version} {organization}/{project}:latest-cpp-dev-cpu", + # dry_run, + # ) + # try_and_handle( + # f"docker tag {organization}/{cpp_dev_gpu_version} {organization}/{project}:latest-cpp-dev-gpu", + # dry_run, + # ) - # Tag nightly images with latest - try_and_handle( - f"docker tag {organization}/{cpu_version} {organization}/{project}:latest-cpu", - dry_run, - ) - try_and_handle( - f"docker tag {organization}/{gpu_version} {organization}/{project}:latest-gpu", - dry_run, - ) - try_and_handle( - f"docker tag {organization}/{cpp_dev_cpu_version} {organization}/{project}:latest-cpp-dev-cpu", - dry_run, - ) - try_and_handle( - f"docker tag {organization}/{cpp_dev_gpu_version} {organization}/{project}:latest-cpp-dev-gpu", - dry_run, - ) + # Push images with latest tag + try_and_handle(f"docker push {organization}/{project}:latest-gpu", dry_run) - # Push images with latest tag - try_and_handle(f"docker push {organization}/{project}:latest-cpu", dry_run) - try_and_handle(f"docker push {organization}/{project}:latest-gpu", dry_run) - try_and_handle( - f"docker push {organization}/{project}:latest-cpp-dev-cpu", dry_run - ) - try_and_handle( - f"docker push {organization}/{project}:latest-cpp-dev-gpu", dry_run - ) + # try_and_handle( + # f"docker push {organization}/{project}:latest-cpp-dev-cpu", dry_run + # ) + # try_and_handle( + # f"docker push {organization}/{project}:latest-cpp-dev-gpu", dry_run + # ) # Cleanup built images if args.cleanup: From f62f1586850cb4dabf091809ed559afad07df565 Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Fri, 13 Sep 2024 22:57:10 +0000 Subject: [PATCH 03/34] testing multiplatform ci --- docker/build_image.sh | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docker/build_image.sh b/docker/build_image.sh index af371f495c..d7d7de280b 100755 --- a/docker/build_image.sh +++ b/docker/build_image.sh @@ -220,17 +220,17 @@ then fi fi -if [ "${BUILD_TYPE}" == "production" ] - if [ "${MULTI}" == "true"] - then - DOCKER_BUILDKIT=1 docker buildx build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}"\ +if [ "${BUILD_TYPE}" == "production" ]; then + if [ "${MULTI}" == "true" ]; then + DOCKER_BUILDKIT=1 docker buildx build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}"\ --build-arg BUILD_NIGHTLY="${BUILD_NIGHTLY}" --build-arg BRANCH_NAME="${BRANCH_NAME}" --build-arg REPO_URL="${REPO_URL}" --build-arg BUILD_FROM_SRC="${BUILD_FROM_SRC}"\ - --build-arg LOCAL_CHANGES="${LOCAL_CHANGES}" -t "${DOCKER_TAG}" --platform "${ARCH}" --target production-image ../ --push + --build-arg LOCAL_CHANGES="${LOCAL_CHANGES}" -t "${DOCKER_TAG}" --platform "${ARCH}" --target production-image ../ --push else - DOCKER_BUILDKIT=1 docker buildx build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}"\ + DOCKER_BUILDKIT=1 docker buildx build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}"\ --build-arg BUILD_NIGHTLY="${BUILD_NIGHTLY}" --build-arg BRANCH_NAME="${BRANCH_NAME}" --build-arg REPO_URL="${REPO_URL}" --build-arg BUILD_FROM_SRC="${BUILD_FROM_SRC}"\ - --build-arg LOCAL_CHANGES="${LOCAL_CHANGES}" -t "${DOCKER_TAG}" --target production-image ../ -elif [ "${BUILD_TYPE}" == "ci" ] + --build-arg LOCAL_CHANGES="${LOCAL_CHANGES}" -t "${DOCKER_TAG}" --target production-image ../ + fi +elif [ "${BUILD_TYPE}" == "ci" ]; then then DOCKER_BUILDKIT=1 docker build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}"\ --build-arg BUILD_NIGHTLY="${BUILD_NIGHTLY}" --build-arg BRANCH_NAME="${BRANCH_NAME}" --build-arg REPO_URL="${REPO_URL}" --build-arg BUILD_FROM_SRC="${BUILD_FROM_SRC}"\ From b2775eb3c7ea1244b702b1fe16fed9a10a612303 Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Fri, 13 Sep 2024 22:59:10 +0000 Subject: [PATCH 04/34] testing multiplatform ci --- docker/build_image.sh | 2 +- docker/docker_nightly.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/build_image.sh b/docker/build_image.sh index d7d7de280b..6a6089e0e3 100755 --- a/docker/build_image.sh +++ b/docker/build_image.sh @@ -230,7 +230,7 @@ if [ "${BUILD_TYPE}" == "production" ]; then --build-arg BUILD_NIGHTLY="${BUILD_NIGHTLY}" --build-arg BRANCH_NAME="${BRANCH_NAME}" --build-arg REPO_URL="${REPO_URL}" --build-arg BUILD_FROM_SRC="${BUILD_FROM_SRC}"\ --build-arg LOCAL_CHANGES="${LOCAL_CHANGES}" -t "${DOCKER_TAG}" --target production-image ../ fi -elif [ "${BUILD_TYPE}" == "ci" ]; then +elif [ "${BUILD_TYPE}" == "ci" ]; then DOCKER_BUILDKIT=1 docker build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}"\ --build-arg BUILD_NIGHTLY="${BUILD_NIGHTLY}" --build-arg BRANCH_NAME="${BRANCH_NAME}" --build-arg REPO_URL="${REPO_URL}" --build-arg BUILD_FROM_SRC="${BUILD_FROM_SRC}"\ diff --git a/docker/docker_nightly.py b/docker/docker_nightly.py index bf99ef128a..271c8a6eb5 100644 --- a/docker/docker_nightly.py +++ b/docker/docker_nightly.py @@ -15,7 +15,7 @@ parser.add_argument( "--organization", type=str, - default="pytorch", + default="udaij12", help="The name of the Dockerhub organization where the images will be pushed", ) parser.add_argument( From 45df7945bfb864b4a52689b3510ca428f6fc82f8 Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Fri, 13 Sep 2024 23:00:49 +0000 Subject: [PATCH 05/34] adding new builder --- .github/workflows/docker-nightly-build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/docker-nightly-build.yml b/.github/workflows/docker-nightly-build.yml index e5a0eb5852..9e7f7c9c41 100644 --- a/.github/workflows/docker-nightly-build.yml +++ b/.github/workflows/docker-nightly-build.yml @@ -35,6 +35,7 @@ jobs: - name: Push Docker Nightly run: | cd docker + docker buildx create --name multibuilder --use python docker_nightly.py --cleanup # - name: Push KServe Docker Nightly # run: | From 761955222b5b9d397649ede01e57bbe94a2b1e34 Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Fri, 13 Sep 2024 23:11:57 +0000 Subject: [PATCH 06/34] removing arm --- .github/workflows/docker-nightly-build.yml | 2 +- docker/build_image.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-nightly-build.yml b/.github/workflows/docker-nightly-build.yml index 9e7f7c9c41..659b1beeff 100644 --- a/.github/workflows/docker-nightly-build.yml +++ b/.github/workflows/docker-nightly-build.yml @@ -35,7 +35,7 @@ jobs: - name: Push Docker Nightly run: | cd docker - docker buildx create --name multibuilder --use + docker buildx use multibuilder python docker_nightly.py --cleanup # - name: Push KServe Docker Nightly # run: | diff --git a/docker/build_image.sh b/docker/build_image.sh index 6a6089e0e3..57732a861f 100755 --- a/docker/build_image.sh +++ b/docker/build_image.sh @@ -18,7 +18,7 @@ BUILD_NIGHTLY=false BUILD_FROM_SRC=false LOCAL_CHANGES=true PYTHON_VERSION=3.9 -ARCH="linux/amd64,linux/arm64" +ARCH="linux/amd64" MULTI=false for arg in "$@" From 33cabbcf2e59b3af01cd0b38dc6bed5682274e7a Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Fri, 13 Sep 2024 23:12:38 +0000 Subject: [PATCH 07/34] removing arm --- .github/workflows/docker-nightly-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-nightly-build.yml b/.github/workflows/docker-nightly-build.yml index 659b1beeff..9e7f7c9c41 100644 --- a/.github/workflows/docker-nightly-build.yml +++ b/.github/workflows/docker-nightly-build.yml @@ -35,7 +35,7 @@ jobs: - name: Push Docker Nightly run: | cd docker - docker buildx use multibuilder + docker buildx create --name multibuilder --use python docker_nightly.py --cleanup # - name: Push KServe Docker Nightly # run: | From debdb7f29582f8d2e113b204d96a844a4b1786a9 Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Fri, 13 Sep 2024 23:23:53 +0000 Subject: [PATCH 08/34] testing arm --- docker/build_image.sh | 2 +- docker/docker_nightly.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/build_image.sh b/docker/build_image.sh index 57732a861f..6a6089e0e3 100755 --- a/docker/build_image.sh +++ b/docker/build_image.sh @@ -18,7 +18,7 @@ BUILD_NIGHTLY=false BUILD_FROM_SRC=false LOCAL_CHANGES=true PYTHON_VERSION=3.9 -ARCH="linux/amd64" +ARCH="linux/amd64,linux/arm64" MULTI=false for arg in "$@" diff --git a/docker/docker_nightly.py b/docker/docker_nightly.py index 271c8a6eb5..73b9bc2562 100644 --- a/docker/docker_nightly.py +++ b/docker/docker_nightly.py @@ -65,7 +65,7 @@ dry_run, ) try_and_handle( - f"docker tag {organization}/{gpu_version} {organization}/{project}:latest-gpu", + f"docker buildx imagetools create --tag {organization}/{project}:latest-gpu {organization}/{gpu_version}", dry_run, ) # try_and_handle( From 1a6d0aa0c73c0c5b0da1d775188bd008c846b1bc Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Fri, 13 Sep 2024 23:29:00 +0000 Subject: [PATCH 09/34] tests --- .github/workflows/docker-nightly-build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/docker-nightly-build.yml b/.github/workflows/docker-nightly-build.yml index 9e7f7c9c41..7ac237f9ba 100644 --- a/.github/workflows/docker-nightly-build.yml +++ b/.github/workflows/docker-nightly-build.yml @@ -35,6 +35,7 @@ jobs: - name: Push Docker Nightly run: | cd docker + docker buildx rm multibuilder docker buildx create --name multibuilder --use python docker_nightly.py --cleanup # - name: Push KServe Docker Nightly From b8637a36c94a42863ada144619559ac8449a4dd0 Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Fri, 13 Sep 2024 23:48:13 +0000 Subject: [PATCH 10/34] testing driver command --- .github/workflows/docker-nightly-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-nightly-build.yml b/.github/workflows/docker-nightly-build.yml index 7ac237f9ba..d1ad24ffe4 100644 --- a/.github/workflows/docker-nightly-build.yml +++ b/.github/workflows/docker-nightly-build.yml @@ -36,7 +36,7 @@ jobs: run: | cd docker docker buildx rm multibuilder - docker buildx create --name multibuilder --use + docker buildx create --name multibuilder --use --driver docker-container --bootstrap python docker_nightly.py --cleanup # - name: Push KServe Docker Nightly # run: | From 3244d4844b5c4e498aa6276ebaea9aa282eebec9 Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Fri, 13 Sep 2024 23:56:21 +0000 Subject: [PATCH 11/34] testing driver command --- .github/workflows/docker-nightly-build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/docker-nightly-build.yml b/.github/workflows/docker-nightly-build.yml index d1ad24ffe4..add341b3fa 100644 --- a/.github/workflows/docker-nightly-build.yml +++ b/.github/workflows/docker-nightly-build.yml @@ -35,6 +35,7 @@ jobs: - name: Push Docker Nightly run: | cd docker + sudo apt-get update docker buildx rm multibuilder docker buildx create --name multibuilder --use --driver docker-container --bootstrap python docker_nightly.py --cleanup From 528aff08ed70ffdaec4038cfb9d51f7bd86d603f Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Sat, 14 Sep 2024 21:32:31 +0000 Subject: [PATCH 12/34] testing on newer instance --- .github/workflows/docker-nightly-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-nightly-build.yml b/.github/workflows/docker-nightly-build.yml index add341b3fa..3847c8e242 100644 --- a/.github/workflows/docker-nightly-build.yml +++ b/.github/workflows/docker-nightly-build.yml @@ -10,7 +10,7 @@ on: jobs: nightly: - runs-on: [self-hosted, ci-gpu] + runs-on: [self-hosted, multi-test] steps: - name: Clean up previous run run: | From d43e74e9f0f580cd19fdd9abfa8068346019fee5 Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Sat, 14 Sep 2024 21:34:23 +0000 Subject: [PATCH 13/34] testing on newer instance --- .github/workflows/docker-nightly-build.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/docker-nightly-build.yml b/.github/workflows/docker-nightly-build.yml index 3847c8e242..80f93f7662 100644 --- a/.github/workflows/docker-nightly-build.yml +++ b/.github/workflows/docker-nightly-build.yml @@ -36,7 +36,6 @@ jobs: run: | cd docker sudo apt-get update - docker buildx rm multibuilder docker buildx create --name multibuilder --use --driver docker-container --bootstrap python docker_nightly.py --cleanup # - name: Push KServe Docker Nightly From e54ee1886904d23ab76b6a981ef23b2a5b03f9a9 Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Sat, 14 Sep 2024 21:41:22 +0000 Subject: [PATCH 14/34] testing newer --- .github/workflows/docker-nightly-build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/docker-nightly-build.yml b/.github/workflows/docker-nightly-build.yml index 80f93f7662..cc1a4b787f 100644 --- a/.github/workflows/docker-nightly-build.yml +++ b/.github/workflows/docker-nightly-build.yml @@ -36,6 +36,8 @@ jobs: run: | cd docker sudo apt-get update + sudo apt-get install --reinstall python3.9 python3-distutils python3.9-dev python3.9-venv -y + docker buildx rm multibuilder docker buildx create --name multibuilder --use --driver docker-container --bootstrap python docker_nightly.py --cleanup # - name: Push KServe Docker Nightly From b79766dcfbd18e47bfc22fd1867c15bfdfb0c64f Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Sat, 14 Sep 2024 21:51:05 +0000 Subject: [PATCH 15/34] rm command --- .github/workflows/docker-nightly-build.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/docker-nightly-build.yml b/.github/workflows/docker-nightly-build.yml index cc1a4b787f..3847c8e242 100644 --- a/.github/workflows/docker-nightly-build.yml +++ b/.github/workflows/docker-nightly-build.yml @@ -36,7 +36,6 @@ jobs: run: | cd docker sudo apt-get update - sudo apt-get install --reinstall python3.9 python3-distutils python3.9-dev python3.9-venv -y docker buildx rm multibuilder docker buildx create --name multibuilder --use --driver docker-container --bootstrap python docker_nightly.py --cleanup From 76e2a4c48029949cc4101ae47305b18eb8001d7f Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Sun, 15 Sep 2024 03:10:05 +0000 Subject: [PATCH 16/34] changing platform --- docker/build_image.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/build_image.sh b/docker/build_image.sh index 6a6089e0e3..a78a09025e 100755 --- a/docker/build_image.sh +++ b/docker/build_image.sh @@ -18,7 +18,7 @@ BUILD_NIGHTLY=false BUILD_FROM_SRC=false LOCAL_CHANGES=true PYTHON_VERSION=3.9 -ARCH="linux/amd64,linux/arm64" +ARCH="linux/arm64" MULTI=false for arg in "$@" @@ -224,7 +224,7 @@ if [ "${BUILD_TYPE}" == "production" ]; then if [ "${MULTI}" == "true" ]; then DOCKER_BUILDKIT=1 docker buildx build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}"\ --build-arg BUILD_NIGHTLY="${BUILD_NIGHTLY}" --build-arg BRANCH_NAME="${BRANCH_NAME}" --build-arg REPO_URL="${REPO_URL}" --build-arg BUILD_FROM_SRC="${BUILD_FROM_SRC}"\ - --build-arg LOCAL_CHANGES="${LOCAL_CHANGES}" -t "${DOCKER_TAG}" --platform "${ARCH}" --target production-image ../ --push + --build-arg LOCAL_CHANGES="${LOCAL_CHANGES}" -t "${DOCKER_TAG}" --platform linux/amd64,linux/arm64 --target production-image ../ --push else DOCKER_BUILDKIT=1 docker buildx build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}"\ --build-arg BUILD_NIGHTLY="${BUILD_NIGHTLY}" --build-arg BRANCH_NAME="${BRANCH_NAME}" --build-arg REPO_URL="${REPO_URL}" --build-arg BUILD_FROM_SRC="${BUILD_FROM_SRC}"\ From 61d523e959e1e0b5703d215046c879ccd957ea4f Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Sun, 15 Sep 2024 03:38:55 +0000 Subject: [PATCH 17/34] testing only amd --- docker/build_image.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/build_image.sh b/docker/build_image.sh index a78a09025e..8a45e93bc6 100755 --- a/docker/build_image.sh +++ b/docker/build_image.sh @@ -224,7 +224,7 @@ if [ "${BUILD_TYPE}" == "production" ]; then if [ "${MULTI}" == "true" ]; then DOCKER_BUILDKIT=1 docker buildx build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}"\ --build-arg BUILD_NIGHTLY="${BUILD_NIGHTLY}" --build-arg BRANCH_NAME="${BRANCH_NAME}" --build-arg REPO_URL="${REPO_URL}" --build-arg BUILD_FROM_SRC="${BUILD_FROM_SRC}"\ - --build-arg LOCAL_CHANGES="${LOCAL_CHANGES}" -t "${DOCKER_TAG}" --platform linux/amd64,linux/arm64 --target production-image ../ --push + --build-arg LOCAL_CHANGES="${LOCAL_CHANGES}" -t "${DOCKER_TAG}" --platform linux/amd64 --target production-image ../ --push else DOCKER_BUILDKIT=1 docker buildx build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}"\ --build-arg BUILD_NIGHTLY="${BUILD_NIGHTLY}" --build-arg BRANCH_NAME="${BRANCH_NAME}" --build-arg REPO_URL="${REPO_URL}" --build-arg BUILD_FROM_SRC="${BUILD_FROM_SRC}"\ From ea4b4f904476761c2d52f3c7283b08f30271f323 Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Sun, 15 Sep 2024 03:53:50 +0000 Subject: [PATCH 18/34] testing both arch --- docker/build_image.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/build_image.sh b/docker/build_image.sh index 8a45e93bc6..1111f05816 100755 --- a/docker/build_image.sh +++ b/docker/build_image.sh @@ -224,11 +224,11 @@ if [ "${BUILD_TYPE}" == "production" ]; then if [ "${MULTI}" == "true" ]; then DOCKER_BUILDKIT=1 docker buildx build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}"\ --build-arg BUILD_NIGHTLY="${BUILD_NIGHTLY}" --build-arg BRANCH_NAME="${BRANCH_NAME}" --build-arg REPO_URL="${REPO_URL}" --build-arg BUILD_FROM_SRC="${BUILD_FROM_SRC}"\ - --build-arg LOCAL_CHANGES="${LOCAL_CHANGES}" -t "${DOCKER_TAG}" --platform linux/amd64 --target production-image ../ --push + --build-arg LOCAL_CHANGES="${LOCAL_CHANGES}" -t "${DOCKER_TAG}" --platform linux/amd64,linux/arm64 --target production-image ../ --push else DOCKER_BUILDKIT=1 docker buildx build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}"\ --build-arg BUILD_NIGHTLY="${BUILD_NIGHTLY}" --build-arg BRANCH_NAME="${BRANCH_NAME}" --build-arg REPO_URL="${REPO_URL}" --build-arg BUILD_FROM_SRC="${BUILD_FROM_SRC}"\ - --build-arg LOCAL_CHANGES="${LOCAL_CHANGES}" -t "${DOCKER_TAG}" --target production-image ../ + --build-arg LOCAL_CHANGES="${LOCAL_CHANGES}" -t "${DOCKER_TAG}" --target production-image ../ --load fi elif [ "${BUILD_TYPE}" == "ci" ]; then From 494cff96972fbda3831f16617a72c96fb7676c21 Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Sun, 15 Sep 2024 03:56:55 +0000 Subject: [PATCH 19/34] testing both arch --- docker/build_image.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/build_image.sh b/docker/build_image.sh index 1111f05816..e132480315 100755 --- a/docker/build_image.sh +++ b/docker/build_image.sh @@ -224,7 +224,7 @@ if [ "${BUILD_TYPE}" == "production" ]; then if [ "${MULTI}" == "true" ]; then DOCKER_BUILDKIT=1 docker buildx build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}"\ --build-arg BUILD_NIGHTLY="${BUILD_NIGHTLY}" --build-arg BRANCH_NAME="${BRANCH_NAME}" --build-arg REPO_URL="${REPO_URL}" --build-arg BUILD_FROM_SRC="${BUILD_FROM_SRC}"\ - --build-arg LOCAL_CHANGES="${LOCAL_CHANGES}" -t "${DOCKER_TAG}" --platform linux/amd64,linux/arm64 --target production-image ../ --push + --build-arg LOCAL_CHANGES="${LOCAL_CHANGES}" -t "${DOCKER_TAG}" --platform linux/arm64 --target production-image ../ --push else DOCKER_BUILDKIT=1 docker buildx build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}"\ --build-arg BUILD_NIGHTLY="${BUILD_NIGHTLY}" --build-arg BRANCH_NAME="${BRANCH_NAME}" --build-arg REPO_URL="${REPO_URL}" --build-arg BUILD_FROM_SRC="${BUILD_FROM_SRC}"\ From 97d5c4cd7c998c1a220620ef40276ff548739f34 Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Sun, 15 Sep 2024 04:29:57 +0000 Subject: [PATCH 20/34] testing both --- docker/build_image.sh | 2 +- docker/docker_nightly.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/build_image.sh b/docker/build_image.sh index e132480315..1111f05816 100755 --- a/docker/build_image.sh +++ b/docker/build_image.sh @@ -224,7 +224,7 @@ if [ "${BUILD_TYPE}" == "production" ]; then if [ "${MULTI}" == "true" ]; then DOCKER_BUILDKIT=1 docker buildx build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}"\ --build-arg BUILD_NIGHTLY="${BUILD_NIGHTLY}" --build-arg BRANCH_NAME="${BRANCH_NAME}" --build-arg REPO_URL="${REPO_URL}" --build-arg BUILD_FROM_SRC="${BUILD_FROM_SRC}"\ - --build-arg LOCAL_CHANGES="${LOCAL_CHANGES}" -t "${DOCKER_TAG}" --platform linux/arm64 --target production-image ../ --push + --build-arg LOCAL_CHANGES="${LOCAL_CHANGES}" -t "${DOCKER_TAG}" --platform linux/amd64,linux/arm64 --target production-image ../ --push else DOCKER_BUILDKIT=1 docker buildx build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}"\ --build-arg BUILD_NIGHTLY="${BUILD_NIGHTLY}" --build-arg BRANCH_NAME="${BRANCH_NAME}" --build-arg REPO_URL="${REPO_URL}" --build-arg BUILD_FROM_SRC="${BUILD_FROM_SRC}"\ diff --git a/docker/docker_nightly.py b/docker/docker_nightly.py index 73b9bc2562..a06b1184ea 100644 --- a/docker/docker_nightly.py +++ b/docker/docker_nightly.py @@ -78,7 +78,7 @@ # ) # Push images with latest tag - try_and_handle(f"docker push {organization}/{project}:latest-gpu", dry_run) + # try_and_handle(f"docker push {organization}/{project}:latest-gpu", dry_run) # try_and_handle( # f"docker push {organization}/{project}:latest-cpp-dev-cpu", dry_run From 3a985ab765d01139db2d40e6123c7ead00f93b97 Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Sun, 15 Sep 2024 04:51:56 +0000 Subject: [PATCH 21/34] remove builder --- .github/workflows/docker-nightly-build.yml | 1 - docker/build_image.sh | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/docker-nightly-build.yml b/.github/workflows/docker-nightly-build.yml index 3847c8e242..80f93f7662 100644 --- a/.github/workflows/docker-nightly-build.yml +++ b/.github/workflows/docker-nightly-build.yml @@ -36,7 +36,6 @@ jobs: run: | cd docker sudo apt-get update - docker buildx rm multibuilder docker buildx create --name multibuilder --use --driver docker-container --bootstrap python docker_nightly.py --cleanup # - name: Push KServe Docker Nightly diff --git a/docker/build_image.sh b/docker/build_image.sh index 1111f05816..e132480315 100755 --- a/docker/build_image.sh +++ b/docker/build_image.sh @@ -224,7 +224,7 @@ if [ "${BUILD_TYPE}" == "production" ]; then if [ "${MULTI}" == "true" ]; then DOCKER_BUILDKIT=1 docker buildx build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}"\ --build-arg BUILD_NIGHTLY="${BUILD_NIGHTLY}" --build-arg BRANCH_NAME="${BRANCH_NAME}" --build-arg REPO_URL="${REPO_URL}" --build-arg BUILD_FROM_SRC="${BUILD_FROM_SRC}"\ - --build-arg LOCAL_CHANGES="${LOCAL_CHANGES}" -t "${DOCKER_TAG}" --platform linux/amd64,linux/arm64 --target production-image ../ --push + --build-arg LOCAL_CHANGES="${LOCAL_CHANGES}" -t "${DOCKER_TAG}" --platform linux/arm64 --target production-image ../ --push else DOCKER_BUILDKIT=1 docker buildx build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}"\ --build-arg BUILD_NIGHTLY="${BUILD_NIGHTLY}" --build-arg BRANCH_NAME="${BRANCH_NAME}" --build-arg REPO_URL="${REPO_URL}" --build-arg BUILD_FROM_SRC="${BUILD_FROM_SRC}"\ From bee430b451da40ea2327289a828e3351ebe49513 Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Sun, 15 Sep 2024 04:53:20 +0000 Subject: [PATCH 22/34] remove builder --- .github/workflows/docker-nightly-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-nightly-build.yml b/.github/workflows/docker-nightly-build.yml index 80f93f7662..cec5fdf875 100644 --- a/.github/workflows/docker-nightly-build.yml +++ b/.github/workflows/docker-nightly-build.yml @@ -36,7 +36,7 @@ jobs: run: | cd docker sudo apt-get update - docker buildx create --name multibuilder --use --driver docker-container --bootstrap + docker buildx use multibuilder python docker_nightly.py --cleanup # - name: Push KServe Docker Nightly # run: | From 2e619c275c090b6409d0977d8fdbcb7f1333efda Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Sun, 15 Sep 2024 04:57:06 +0000 Subject: [PATCH 23/34] adding amd --- docker/build_image.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/build_image.sh b/docker/build_image.sh index e132480315..1111f05816 100755 --- a/docker/build_image.sh +++ b/docker/build_image.sh @@ -224,7 +224,7 @@ if [ "${BUILD_TYPE}" == "production" ]; then if [ "${MULTI}" == "true" ]; then DOCKER_BUILDKIT=1 docker buildx build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}"\ --build-arg BUILD_NIGHTLY="${BUILD_NIGHTLY}" --build-arg BRANCH_NAME="${BRANCH_NAME}" --build-arg REPO_URL="${REPO_URL}" --build-arg BUILD_FROM_SRC="${BUILD_FROM_SRC}"\ - --build-arg LOCAL_CHANGES="${LOCAL_CHANGES}" -t "${DOCKER_TAG}" --platform linux/arm64 --target production-image ../ --push + --build-arg LOCAL_CHANGES="${LOCAL_CHANGES}" -t "${DOCKER_TAG}" --platform linux/amd64,linux/arm64 --target production-image ../ --push else DOCKER_BUILDKIT=1 docker buildx build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}"\ --build-arg BUILD_NIGHTLY="${BUILD_NIGHTLY}" --build-arg BRANCH_NAME="${BRANCH_NAME}" --build-arg REPO_URL="${REPO_URL}" --build-arg BUILD_FROM_SRC="${BUILD_FROM_SRC}"\ From a23b77d359e4ab53634b8acade6423469d688157 Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Sun, 15 Sep 2024 06:15:09 +0000 Subject: [PATCH 24/34] building cache --- .github/workflows/docker-nightly-build.yml | 2 +- docker/build_image.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-nightly-build.yml b/.github/workflows/docker-nightly-build.yml index cec5fdf875..73ed1933eb 100644 --- a/.github/workflows/docker-nightly-build.yml +++ b/.github/workflows/docker-nightly-build.yml @@ -10,7 +10,7 @@ on: jobs: nightly: - runs-on: [self-hosted, multi-test] + runs-on: [self-hosted, ci-gpu] steps: - name: Clean up previous run run: | diff --git a/docker/build_image.sh b/docker/build_image.sh index 1111f05816..b80068bca4 100755 --- a/docker/build_image.sh +++ b/docker/build_image.sh @@ -224,7 +224,7 @@ if [ "${BUILD_TYPE}" == "production" ]; then if [ "${MULTI}" == "true" ]; then DOCKER_BUILDKIT=1 docker buildx build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}"\ --build-arg BUILD_NIGHTLY="${BUILD_NIGHTLY}" --build-arg BRANCH_NAME="${BRANCH_NAME}" --build-arg REPO_URL="${REPO_URL}" --build-arg BUILD_FROM_SRC="${BUILD_FROM_SRC}"\ - --build-arg LOCAL_CHANGES="${LOCAL_CHANGES}" -t "${DOCKER_TAG}" --platform linux/amd64,linux/arm64 --target production-image ../ --push + --build-arg LOCAL_CHANGES="${LOCAL_CHANGES}" -t "${DOCKER_TAG}" --platform "${ARCH}" --target production-image ../ --push else DOCKER_BUILDKIT=1 docker buildx build --file Dockerfile --build-arg BASE_IMAGE="${BASE_IMAGE}" --build-arg USE_CUDA_VERSION="${CUDA_VERSION}" --build-arg PYTHON_VERSION="${PYTHON_VERSION}"\ --build-arg BUILD_NIGHTLY="${BUILD_NIGHTLY}" --build-arg BRANCH_NAME="${BRANCH_NAME}" --build-arg REPO_URL="${REPO_URL}" --build-arg BUILD_FROM_SRC="${BUILD_FROM_SRC}"\ From fead9169a5d14b2f7a2ff70d737704c322d30d35 Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Sun, 15 Sep 2024 06:20:52 +0000 Subject: [PATCH 25/34] cache 3 --- docker/docker_nightly.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/docker/docker_nightly.py b/docker/docker_nightly.py index a06b1184ea..434436f1db 100644 --- a/docker/docker_nightly.py +++ b/docker/docker_nightly.py @@ -39,7 +39,6 @@ cpp_dev_gpu_version = f"{project}:cpp-dev-gpu-{get_nightly_version()}" # Build Nightly images and append the date in the name - try_and_handle(f"./build_image.sh -m -n -t {organization}/{cpu_version}", dry_run) try_and_handle( f"./build_image.sh -g -cv cu121 -n -t {organization}/{gpu_version}", @@ -78,8 +77,6 @@ # ) # Push images with latest tag - # try_and_handle(f"docker push {organization}/{project}:latest-gpu", dry_run) - # try_and_handle( # f"docker push {organization}/{project}:latest-cpp-dev-cpu", dry_run # ) From 470b285fc6a6636f67d1e5cd126f77a970be1890 Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Sun, 15 Sep 2024 06:23:53 +0000 Subject: [PATCH 26/34] cache 4 --- docker/docker_nightly.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docker/docker_nightly.py b/docker/docker_nightly.py index 434436f1db..671d3eae19 100644 --- a/docker/docker_nightly.py +++ b/docker/docker_nightly.py @@ -40,10 +40,10 @@ # Build Nightly images and append the date in the name try_and_handle(f"./build_image.sh -m -n -t {organization}/{cpu_version}", dry_run) - try_and_handle( - f"./build_image.sh -g -cv cu121 -n -t {organization}/{gpu_version}", - dry_run, - ) + # try_and_handle( + # f"./build_image.sh -g -cv cu121 -n -t {organization}/{gpu_version}", + # dry_run, + # ) # try_and_handle( # f"./build_image.sh -bt dev -cpp -t {organization}/{cpp_dev_cpu_version}", # dry_run, @@ -54,7 +54,7 @@ # ) # Push Nightly images to official PyTorch Dockerhub account - try_and_handle(f"docker push {organization}/{gpu_version}", dry_run) + # try_and_handle(f"docker push {organization}/{gpu_version}", dry_run) # try_and_handle(f"docker push {organization}/{cpp_dev_cpu_version}", dry_run) # try_and_handle(f"docker push {organization}/{cpp_dev_gpu_version}", dry_run) @@ -63,10 +63,10 @@ f"docker buildx imagetools create --tag {organization}/{project}:latest-cpu {organization}/{cpu_version}", dry_run, ) - try_and_handle( - f"docker buildx imagetools create --tag {organization}/{project}:latest-gpu {organization}/{gpu_version}", - dry_run, - ) + # try_and_handle( + # f"docker buildx imagetools create --tag {organization}/{project}:latest-gpu {organization}/{gpu_version}", + # dry_run, + # ) # try_and_handle( # f"docker tag {organization}/{cpp_dev_cpu_version} {organization}/{project}:latest-cpp-dev-cpu", # dry_run, From 6bd6511e341f165d8b30b276b2790ad591c9070e Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Sun, 15 Sep 2024 06:25:19 +0000 Subject: [PATCH 27/34] cache 4 --- .github/workflows/docker-nightly-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-nightly-build.yml b/.github/workflows/docker-nightly-build.yml index 73ed1933eb..9f1fdb0eca 100644 --- a/.github/workflows/docker-nightly-build.yml +++ b/.github/workflows/docker-nightly-build.yml @@ -36,7 +36,7 @@ jobs: run: | cd docker sudo apt-get update - docker buildx use multibuilder + docker buildx create --name multibuilder --use --driver docker-container --bootstrap python docker_nightly.py --cleanup # - name: Push KServe Docker Nightly # run: | From df0a0ef8043eb595ad1f6bed24952b4da60ac9ed Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Sun, 15 Sep 2024 06:49:09 +0000 Subject: [PATCH 28/34] final test --- .github/workflows/docker-nightly-build.yml | 2 +- docker/build_image.sh | 2 +- docker/docker_nightly.py | 62 ++++++++++------------ 3 files changed, 31 insertions(+), 35 deletions(-) diff --git a/.github/workflows/docker-nightly-build.yml b/.github/workflows/docker-nightly-build.yml index 9f1fdb0eca..73ed1933eb 100644 --- a/.github/workflows/docker-nightly-build.yml +++ b/.github/workflows/docker-nightly-build.yml @@ -36,7 +36,7 @@ jobs: run: | cd docker sudo apt-get update - docker buildx create --name multibuilder --use --driver docker-container --bootstrap + docker buildx use multibuilder python docker_nightly.py --cleanup # - name: Push KServe Docker Nightly # run: | diff --git a/docker/build_image.sh b/docker/build_image.sh index b80068bca4..b5b9f8e87e 100755 --- a/docker/build_image.sh +++ b/docker/build_image.sh @@ -18,7 +18,7 @@ BUILD_NIGHTLY=false BUILD_FROM_SRC=false LOCAL_CHANGES=true PYTHON_VERSION=3.9 -ARCH="linux/arm64" +ARCH="linux/arm64,linux/amd64" MULTI=false for arg in "$@" diff --git a/docker/docker_nightly.py b/docker/docker_nightly.py index 671d3eae19..5f449b3e56 100644 --- a/docker/docker_nightly.py +++ b/docker/docker_nightly.py @@ -40,49 +40,45 @@ # Build Nightly images and append the date in the name try_and_handle(f"./build_image.sh -m -n -t {organization}/{cpu_version}", dry_run) - # try_and_handle( - # f"./build_image.sh -g -cv cu121 -n -t {organization}/{gpu_version}", - # dry_run, - # ) - # try_and_handle( - # f"./build_image.sh -bt dev -cpp -t {organization}/{cpp_dev_cpu_version}", - # dry_run, - # ) - # try_and_handle( - # f"./build_image.sh -bt dev -g -cv cu121 -cpp -t {organization}/{cpp_dev_gpu_version}", - # dry_run, - # ) + try_and_handle( + f"./build_image.sh -g -cv cu121 -n -t {organization}/{gpu_version}", + dry_run, + ) + try_and_handle( + f"./build_image.sh -bt dev -cpp -t {organization}/{cpp_dev_cpu_version}", + dry_run, + ) + try_and_handle( + f"./build_image.sh -bt dev -g -cv cu121 -cpp -t {organization}/{cpp_dev_gpu_version}", + dry_run, + ) # Push Nightly images to official PyTorch Dockerhub account - # try_and_handle(f"docker push {organization}/{gpu_version}", dry_run) - # try_and_handle(f"docker push {organization}/{cpp_dev_cpu_version}", dry_run) - # try_and_handle(f"docker push {organization}/{cpp_dev_gpu_version}", dry_run) + try_and_handle(f"docker push {organization}/{gpu_version}", dry_run) + try_and_handle(f"docker push {organization}/{cpp_dev_cpu_version}", dry_run) + try_and_handle(f"docker push {organization}/{cpp_dev_gpu_version}", dry_run) # Tag nightly images with latest try_and_handle( f"docker buildx imagetools create --tag {organization}/{project}:latest-cpu {organization}/{cpu_version}", dry_run, ) - # try_and_handle( - # f"docker buildx imagetools create --tag {organization}/{project}:latest-gpu {organization}/{gpu_version}", - # dry_run, - # ) - # try_and_handle( - # f"docker tag {organization}/{cpp_dev_cpu_version} {organization}/{project}:latest-cpp-dev-cpu", - # dry_run, - # ) - # try_and_handle( - # f"docker tag {organization}/{cpp_dev_gpu_version} {organization}/{project}:latest-cpp-dev-gpu", - # dry_run, - # ) + try_and_handle( + f"docker buildx imagetools create --tag {organization}/{project}:latest-gpu {organization}/{gpu_version}", + dry_run, + ) + try_and_handle( + f"docker tag {organization}/{cpp_dev_cpu_version} {organization}/{project}:latest-cpp-dev-cpu", + dry_run, + ) + try_and_handle( + f"docker tag {organization}/{cpp_dev_gpu_version} {organization}/{project}:latest-cpp-dev-gpu", + dry_run, + ) # Push images with latest tag - # try_and_handle( - # f"docker push {organization}/{project}:latest-cpp-dev-cpu", dry_run - # ) - # try_and_handle( - # f"docker push {organization}/{project}:latest-cpp-dev-gpu", dry_run - # ) + try_and_handle(f"docker push {organization}/{project}:latest-cpp-dev-cpu", dry_run) + try_and_handle(f"docker push {organization}/{project}:latest-cpp-dev-gpu", dry_run) # Cleanup built images if args.cleanup: From 473c05ed8337083ad07602c67efbde7e23d8ef20 Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Sun, 15 Sep 2024 23:22:50 +0000 Subject: [PATCH 29/34] reverting temp changes --- .github/workflows/docker-nightly-build.yml | 36 ++++++++++------------ docker/docker_nightly.py | 2 +- 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/.github/workflows/docker-nightly-build.yml b/.github/workflows/docker-nightly-build.yml index 73ed1933eb..e988cc97c4 100644 --- a/.github/workflows/docker-nightly-build.yml +++ b/.github/workflows/docker-nightly-build.yml @@ -2,11 +2,9 @@ name: Push Docker Nightly on: # Run every day at 1:15pm - # schedule: - # - cron: "15 13 * * *" - # workflow_dispatch: - push: - branches: "docker_aarch" + schedule: + - cron: "15 13 * * *" + workflow_dispatch: jobs: nightly: @@ -30,23 +28,23 @@ jobs: submodules: recursive - name: Login to Docker env: - DOCKER_PASSWORD: ${{secrets.UDAI_TEST}} - run: docker login --username udaij12 --password "$DOCKER_PASSWORD" + DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}} + run: docker login --username pytorchbot --password "$DOCKER_PASSWORD" - name: Push Docker Nightly run: | cd docker sudo apt-get update docker buildx use multibuilder python docker_nightly.py --cleanup - # - name: Push KServe Docker Nightly - # run: | - # cd kubernetes/kserve - # python docker_nightly.py --cleanup - # - name: Open issue on failure - # if: ${{ failure() && github.event_name == 'schedule' }} - # uses: dacbd/create-issue-action@v1 - # with: - # token: ${{ secrets.GITHUB_TOKEN }} - # title: Nightly Docker build failed - # body: Commit ${{ github.sha }} daily scheduled [CI run](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}) failed, please check why - # assignees: "" + - name: Push KServe Docker Nightly + run: | + cd kubernetes/kserve + python docker_nightly.py --cleanup + - name: Open issue on failure + if: ${{ failure() && github.event_name == 'schedule' }} + uses: dacbd/create-issue-action@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + title: Nightly Docker build failed + body: Commit ${{ github.sha }} daily scheduled [CI run](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}) failed, please check why + assignees: "" diff --git a/docker/docker_nightly.py b/docker/docker_nightly.py index 5f449b3e56..9d13e7b418 100644 --- a/docker/docker_nightly.py +++ b/docker/docker_nightly.py @@ -15,7 +15,7 @@ parser.add_argument( "--organization", type=str, - default="udaij12", + default="pytorch", help="The name of the Dockerhub organization where the images will be pushed", ) parser.add_argument( From d6b0f6391f533c33309a93054178cb2c6ab5d087 Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Mon, 16 Sep 2024 19:16:48 +0000 Subject: [PATCH 30/34] testing official release --- .github/workflows/official_release_docker.yml | 25 +++++++++++-------- docker/build_upload_release.py | 25 +++++++++++++------ 2 files changed, 32 insertions(+), 18 deletions(-) diff --git a/.github/workflows/official_release_docker.yml b/.github/workflows/official_release_docker.yml index 63103eefa9..29205e9bef 100644 --- a/.github/workflows/official_release_docker.yml +++ b/.github/workflows/official_release_docker.yml @@ -1,16 +1,18 @@ name: Make an official Release of Docker Images on: - workflow_dispatch: - inputs: - upload_docker: - description: 'Upload TorchServe Docker Images?' - required: true - default: 'no' - upload_kfs: - description: 'Upload TorchServe-kfs Docker Images?' - required: true - default: 'no' + # workflow_dispatch: + # inputs: + # upload_docker: + # description: 'Upload TorchServe Docker Images?' + # required: true + # default: 'no' + # upload_kfs: + # description: 'Upload TorchServe-kfs Docker Images?' + # required: true + # default: 'no' + push: + -branches: "docker_aarch" jobs: official-release-docker: @@ -36,12 +38,13 @@ jobs: submodules: recursive - name: Login to Docker env: - DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}} + DOCKER_PASSWORD: ${{secrets.UDAI_TEST}} run: docker login --username pytorchbot --password "$DOCKER_PASSWORD" - name: Build & Upload pytorch/torchserve Docker images if: github.event.inputs.upload_docker == 'yes' run: | cd docker + docker buildx use multibuilder python build_upload_release.py --cleanup - name: Build & Upload pytorch/torchserve-kfs Docker images if: github.event.inputs.upload_kfs == 'yes' diff --git a/docker/build_upload_release.py b/docker/build_upload_release.py index 72e33edec9..b4af680f52 100644 --- a/docker/build_upload_release.py +++ b/docker/build_upload_release.py @@ -13,7 +13,7 @@ parser.add_argument( "--organization", type=str, - default="pytorch", + default="udaij12", help="The name of the Dockerhub organization where the images will be pushed", ) parser.add_argument( @@ -31,7 +31,7 @@ organization = args.organization # Upload pytorch/torchserve docker binaries - try_and_handle(f"./build_image.sh -t {organization}/torchserve:latest", dry_run) + try_and_handle(f"./build_image.sh -m -t {organization}/torchserve:latest", dry_run) try_and_handle( f"./build_image.sh -g -cv cu121 -t {organization}/torchserve:latest-gpu", dry_run, @@ -44,14 +44,25 @@ f"./build_image.sh -bt dev -g -cv cu121 -cpp -t {organization}/torchserve:latest-cpp-dev-gpu", dry_run, ) + # try_and_handle( + # f"docker tag {organization}/torchserve:latest {organization}/torchserve:latest-cpu", + # dry_run, + # ) + try_and_handle( - f"docker tag {organization}/torchserve:latest {organization}/torchserve:latest-cpu", + f"docker buildx imagetools create --tag {organization}/torchserve:latest-cpu {organization}/torchserve:latest", dry_run, ) + try_and_handle( - f"docker tag {organization}/torchserve:latest {organization}/torchserve:{check_ts_version()}-cpu", + f"docker buildx imagetools create --tag {organization}/torchserve:{check_ts_version()}-cpu {organization}/torchserve:latest", dry_run, ) + + # try_and_handle( + # f"docker tag {organization}/torchserve:latest {organization}/torchserve:{check_ts_version()}-cpu", + # dry_run, + # ) try_and_handle( f"docker tag {organization}/torchserve:latest-gpu {organization}/torchserve:{check_ts_version()}-gpu", dry_run, @@ -66,12 +77,12 @@ ) for image in [ - f"{organization}/torchserve:latest", - f"{organization}/torchserve:latest-cpu", + # f"{organization}/torchserve:latest", + # f"{organization}/torchserve:latest-cpu", f"{organization}/torchserve:latest-gpu", f"{organization}/torchserve:latest-cpp-dev-cpu", f"{organization}/torchserve:latest-cpp-dev-gpu", - f"{organization}/torchserve:{check_ts_version()}-cpu", + # f"{organization}/torchserve:{check_ts_version()}-cpu", f"{organization}/torchserve:{check_ts_version()}-gpu", f"{organization}/torchserve:{check_ts_version()}-cpp-dev-cpu", f"{organization}/torchserve:{check_ts_version()}-cpp-dev-gpu", From e5edd18d2cc675218705ecbff1fa04d30837842a Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Mon, 16 Sep 2024 19:18:34 +0000 Subject: [PATCH 31/34] testing official release --- .github/workflows/official_release_docker.yml | 24 +++++++++---------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/.github/workflows/official_release_docker.yml b/.github/workflows/official_release_docker.yml index 29205e9bef..cb72ef419a 100644 --- a/.github/workflows/official_release_docker.yml +++ b/.github/workflows/official_release_docker.yml @@ -1,18 +1,16 @@ name: Make an official Release of Docker Images on: - # workflow_dispatch: - # inputs: - # upload_docker: - # description: 'Upload TorchServe Docker Images?' - # required: true - # default: 'no' - # upload_kfs: - # description: 'Upload TorchServe-kfs Docker Images?' - # required: true - # default: 'no' - push: - -branches: "docker_aarch" + workflow_dispatch: + inputs: + upload_docker: + description: 'Upload TorchServe Docker Images?' + required: true + default: 'no' + upload_kfs: + description: 'Upload TorchServe-kfs Docker Images?' + required: true + default: 'no' jobs: official-release-docker: @@ -38,7 +36,7 @@ jobs: submodules: recursive - name: Login to Docker env: - DOCKER_PASSWORD: ${{secrets.UDAI_TEST}} + DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}} run: docker login --username pytorchbot --password "$DOCKER_PASSWORD" - name: Build & Upload pytorch/torchserve Docker images if: github.event.inputs.upload_docker == 'yes' From ec9772fe8ca636a35619ee38a2046ca114e69603 Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Mon, 16 Sep 2024 19:20:01 +0000 Subject: [PATCH 32/34] testing official release --- docker/build_upload_release.py | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/docker/build_upload_release.py b/docker/build_upload_release.py index b4af680f52..0f9cbb6505 100644 --- a/docker/build_upload_release.py +++ b/docker/build_upload_release.py @@ -13,7 +13,7 @@ parser.add_argument( "--organization", type=str, - default="udaij12", + default="pytorch", help="The name of the Dockerhub organization where the images will be pushed", ) parser.add_argument( @@ -44,10 +44,6 @@ f"./build_image.sh -bt dev -g -cv cu121 -cpp -t {organization}/torchserve:latest-cpp-dev-gpu", dry_run, ) - # try_and_handle( - # f"docker tag {organization}/torchserve:latest {organization}/torchserve:latest-cpu", - # dry_run, - # ) try_and_handle( f"docker buildx imagetools create --tag {organization}/torchserve:latest-cpu {organization}/torchserve:latest", @@ -59,10 +55,6 @@ dry_run, ) - # try_and_handle( - # f"docker tag {organization}/torchserve:latest {organization}/torchserve:{check_ts_version()}-cpu", - # dry_run, - # ) try_and_handle( f"docker tag {organization}/torchserve:latest-gpu {organization}/torchserve:{check_ts_version()}-gpu", dry_run, @@ -77,12 +69,9 @@ ) for image in [ - # f"{organization}/torchserve:latest", - # f"{organization}/torchserve:latest-cpu", f"{organization}/torchserve:latest-gpu", f"{organization}/torchserve:latest-cpp-dev-cpu", f"{organization}/torchserve:latest-cpp-dev-gpu", - # f"{organization}/torchserve:{check_ts_version()}-cpu", f"{organization}/torchserve:{check_ts_version()}-gpu", f"{organization}/torchserve:{check_ts_version()}-cpp-dev-cpu", f"{organization}/torchserve:{check_ts_version()}-cpp-dev-gpu", From 9af2db5e44af3c41ee22b87f792faa586cf4a65c Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Mon, 16 Sep 2024 19:43:24 +0000 Subject: [PATCH 33/34] adding kserve changes --- .github/workflows/official_release_docker.yml | 1 + kubernetes/kserve/build_image.sh | 12 +++++++++++- kubernetes/kserve/build_upload_release.py | 3 +-- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/.github/workflows/official_release_docker.yml b/.github/workflows/official_release_docker.yml index cb72ef419a..f3958101be 100644 --- a/.github/workflows/official_release_docker.yml +++ b/.github/workflows/official_release_docker.yml @@ -48,4 +48,5 @@ jobs: if: github.event.inputs.upload_kfs == 'yes' run: | cd kubernetes/kserve + docker buildx use multibuilder python build_upload_release.py --cleanup diff --git a/kubernetes/kserve/build_image.sh b/kubernetes/kserve/build_image.sh index b644dc37f7..b5df80267a 100755 --- a/kubernetes/kserve/build_image.sh +++ b/kubernetes/kserve/build_image.sh @@ -6,6 +6,8 @@ BASE_IMAGE="pytorch/torchserve:latest-cpu" DOCKER_FILE="Dockerfile" BUILD_NIGHTLY=false USE_CUSTOM_TAG=false +ARCH="linux/arm64,linux/amd64" +MULTI=false for arg in "$@" do @@ -38,6 +40,10 @@ do shift shift ;; + -m|--multi) + MULTI=true + shift + ;; esac done @@ -57,4 +63,8 @@ fi cp ../../frontend/server/src/main/resources/proto/*.proto . cp -r ../../third_party . -DOCKER_BUILDKIT=1 docker build --file "$DOCKER_FILE" --build-arg BASE_IMAGE=$BASE_IMAGE -t "$DOCKER_TAG" . +if [ "${MULTI}" == "true" ]; then + DOCKER_BUILDKIT=1 docker buildx build --file "$DOCKER_FILE" --build-arg BASE_IMAGE=$BASE_IMAGE --platform "${ARCH}" -t "$DOCKER_TAG" --push +else + DOCKER_BUILDKIT=1 docker buildx build --file "$DOCKER_FILE" --build-arg BASE_IMAGE=$BASE_IMAGE -t "$DOCKER_TAG" --load +fi diff --git a/kubernetes/kserve/build_upload_release.py b/kubernetes/kserve/build_upload_release.py index 55183c7a03..0c7c481671 100644 --- a/kubernetes/kserve/build_upload_release.py +++ b/kubernetes/kserve/build_upload_release.py @@ -31,7 +31,7 @@ organization = args.organization try_and_handle( - f"./build_image.sh -t {organization}/torchserve-kfs:{check_ts_version()}", + f"./build_image.sh -m -t {organization}/torchserve-kfs:{check_ts_version()}", dry_run, ) try_and_handle( @@ -40,7 +40,6 @@ ) for image in [ - f"{organization}/torchserve-kfs:{check_ts_version()}", f"{organization}/torchserve-kfs:{check_ts_version()}-gpu", ]: try_and_handle(f"docker push {image}", dry_run) From 385ba5599f514c2b57c11b286a528439523a7ed5 Mon Sep 17 00:00:00 2001 From: Udai Jain Date: Mon, 16 Sep 2024 22:40:23 +0000 Subject: [PATCH 34/34] kserve nightly --- .github/workflows/docker-nightly-build.yml | 1 + kubernetes/kserve/docker_nightly.py | 6 ++---- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/docker-nightly-build.yml b/.github/workflows/docker-nightly-build.yml index e988cc97c4..2bbd50712d 100644 --- a/.github/workflows/docker-nightly-build.yml +++ b/.github/workflows/docker-nightly-build.yml @@ -39,6 +39,7 @@ jobs: - name: Push KServe Docker Nightly run: | cd kubernetes/kserve + docker buildx use multibuilder python docker_nightly.py --cleanup - name: Open issue on failure if: ${{ failure() && github.event_name == 'schedule' }} diff --git a/kubernetes/kserve/docker_nightly.py b/kubernetes/kserve/docker_nightly.py index 209c0d976e..d5d3f13b76 100644 --- a/kubernetes/kserve/docker_nightly.py +++ b/kubernetes/kserve/docker_nightly.py @@ -37,19 +37,18 @@ gpu_version = f"{project}:gpu-{get_nightly_version()}" # Build Nightly images and append the date in the name - try_and_handle(f"./build_image.sh -n -t {organization}/{cpu_version}", dry_run) + try_and_handle(f"./build_image.sh -m -n -t {organization}/{cpu_version}", dry_run) try_and_handle( f"./build_image.sh -g -n -t {organization}/{gpu_version}", dry_run, ) # Push Nightly images to official PyTorch Dockerhub account - try_and_handle(f"docker push {organization}/{cpu_version}", dry_run) try_and_handle(f"docker push {organization}/{gpu_version}", dry_run) # Tag nightly images with latest try_and_handle( - f"docker tag {organization}/{cpu_version} {organization}/{project}:latest-cpu", + f"docker buildx imagetools create --tag {organization}/{project}:latest-cpu {organization}/{cpu_version}", dry_run, ) try_and_handle( @@ -58,7 +57,6 @@ ) # Push images with latest tag - try_and_handle(f"docker push {organization}/{project}:latest-cpu", dry_run) try_and_handle(f"docker push {organization}/{project}:latest-gpu", dry_run) # Cleanup built images