fix(docker): publish manifest for multiarch and update cs3d (#4650)

This commit is contained in:
Alireza 2025-01-08 09:00:22 -05:00 committed by GitHub
parent 05e3f221a6
commit 836e67a6ab
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 145 additions and 55 deletions

View File

@ -208,7 +208,7 @@ jobs:
- setup_remote_docker: - setup_remote_docker:
docker_layer_caching: false docker_layer_caching: false
- run: - run:
name: Build and push Docker image from the release branch name: Build Docker image for amd64
command: | command: |
# This file will exist if a new version was published by # This file will exist if a new version was published by
# our command in the previous job. # our command in the previous job.
@ -222,12 +222,16 @@ jobs:
export IMAGE_VERSION_FULL=v$IMAGE_VERSION export IMAGE_VERSION_FULL=v$IMAGE_VERSION
echo $IMAGE_VERSION echo $IMAGE_VERSION
echo $IMAGE_VERSION_FULL echo $IMAGE_VERSION_FULL
# Build our image, auth, and push # Build our amd64 image, auth, and push
docker build --tag ohif/app:$IMAGE_VERSION_FULL --tag ohif/app:latest . docker build --platform linux/amd64 --tag ohif/app:$IMAGE_VERSION_FULL-amd64 --tag ohif/app:latest-amd64 .
echo $DOCKER_PWD | docker login -u $DOCKER_LOGIN --password-stdin echo $DOCKER_PWD | docker login -u $DOCKER_LOGIN --password-stdin
docker push ohif/app:$IMAGE_VERSION_FULL docker push ohif/app:$IMAGE_VERSION_FULL-amd64
docker push ohif/app:latest docker push ohif/app:latest-amd64
fi fi
- persist_to_workspace:
root: ~/repo
paths:
- .
DOCKER_RELEASE_PUBLISH_ARM: DOCKER_RELEASE_PUBLISH_ARM:
<<: *defaults <<: *defaults
@ -238,7 +242,7 @@ jobs:
- setup_remote_docker: - setup_remote_docker:
docker_layer_caching: false docker_layer_caching: false
- run: - run:
name: Build and push ARM64 Docker image from the release branch name: Build Docker image for arm64
command: | command: |
# This file will exist if a new version was published by # This file will exist if a new version was published by
# our command in the previous job. # our command in the previous job.
@ -252,12 +256,16 @@ jobs:
export IMAGE_VERSION_FULL=v$IMAGE_VERSION export IMAGE_VERSION_FULL=v$IMAGE_VERSION
echo $IMAGE_VERSION echo $IMAGE_VERSION
echo $IMAGE_VERSION_FULL echo $IMAGE_VERSION_FULL
# Build our ARM64 image, auth, and push # Build our arm64 image, auth, and push
docker build --tag ohif/app:$IMAGE_VERSION_FULL-arm64 --tag ohif/app:latest-arm64 . docker build --platform linux/arm64 --tag ohif/app:$IMAGE_VERSION_FULL-arm64 --tag ohif/app:latest-arm64 .
echo $DOCKER_PWD | docker login -u $DOCKER_LOGIN --password-stdin echo $DOCKER_PWD | docker login -u $DOCKER_LOGIN --password-stdin
docker push ohif/app:$IMAGE_VERSION_FULL-arm64 docker push ohif/app:$IMAGE_VERSION_FULL-arm64
docker push ohif/app:latest-arm64 docker push ohif/app:latest-arm64
fi fi
- persist_to_workspace:
root: ~/repo
paths:
- .
DOCKER_BETA_PUBLISH: DOCKER_BETA_PUBLISH:
<<: *defaults <<: *defaults
@ -268,7 +276,7 @@ jobs:
- setup_remote_docker: - setup_remote_docker:
docker_layer_caching: false docker_layer_caching: false
- run: - run:
name: Build and push Docker image from the master branch (beta releases) name: Build Docker image for amd64 (Beta)
command: | command: |
echo $(ls -l) echo $(ls -l)
@ -280,19 +288,17 @@ jobs:
else else
echo "Building and pushing Docker image from the master branch (beta releases)" echo "Building and pushing Docker image from the master branch (beta releases)"
rm -f ./.npmrc rm -f ./.npmrc
# Set our version number using vars # Set our version number using vars
export IMAGE_VERSION=$(cat version.txt) export IMAGE_VERSION=$(cat version.txt)
export IMAGE_VERSION_FULL=v$IMAGE_VERSION export IMAGE_VERSION_FULL=v$IMAGE_VERSION
echo $IMAGE_VERSION echo $IMAGE_VERSION
echo $IMAGE_VERSION_FULL echo $IMAGE_VERSION_FULL
# Build our image, auth, and push # Build our amd64 image, auth, and push
docker build --platform linux/amd64 --tag ohif/app:$IMAGE_VERSION_FULL-amd64 --tag ohif/app:latest-beta-amd64 .
echo "starting docker build"
docker build --tag ohif/app:$IMAGE_VERSION_FULL .
echo $DOCKER_PWD | docker login -u $DOCKER_LOGIN --password-stdin echo $DOCKER_PWD | docker login -u $DOCKER_LOGIN --password-stdin
docker push ohif/app:$IMAGE_VERSION_FULL-amd64
echo "starting docker push" docker push ohif/app:latest-beta-amd64
docker push ohif/app:$IMAGE_VERSION_FULL
fi fi
DOCKER_BETA_PUBLISH_ARM: DOCKER_BETA_PUBLISH_ARM:
@ -304,7 +310,7 @@ jobs:
- setup_remote_docker: - setup_remote_docker:
docker_layer_caching: false docker_layer_caching: false
- run: - run:
name: Build and push ARM64 Docker image from the master branch (beta releases) name: Build Docker image for arm64 (Beta)
command: | command: |
echo $(ls -l) echo $(ls -l)
@ -321,13 +327,11 @@ jobs:
export IMAGE_VERSION_FULL=v$IMAGE_VERSION export IMAGE_VERSION_FULL=v$IMAGE_VERSION
echo $IMAGE_VERSION echo $IMAGE_VERSION
echo $IMAGE_VERSION_FULL echo $IMAGE_VERSION_FULL
# Build our ARM64 image, auth, and push # Build our arm64 image, auth, and push
echo "starting docker build" docker build --platform linux/arm64 --tag ohif/app:$IMAGE_VERSION_FULL-arm64 --tag ohif/app:latest-beta-arm64 .
docker build --tag ohif/app:$IMAGE_VERSION_FULL-arm64 .
echo $DOCKER_PWD | docker login -u $DOCKER_LOGIN --password-stdin echo $DOCKER_PWD | docker login -u $DOCKER_LOGIN --password-stdin
echo "starting docker push"
docker push ohif/app:$IMAGE_VERSION_FULL-arm64 docker push ohif/app:$IMAGE_VERSION_FULL-arm64
docker push ohif/app:latest-beta-arm64
fi fi
CYPRESS: CYPRESS:
@ -356,6 +360,84 @@ jobs:
--browser chrome --parallel --browser chrome --parallel
start-command: bun run test:data && bun run test:e2e:serve start-command: bun run test:data && bun run test:e2e:serve
DOCKER_MULTIARCH_MANIFEST:
<<: *defaults
resource_class: large
steps:
- attach_workspace:
at: ~/repo
- setup_remote_docker:
docker_layer_caching: false
- run:
name: Create and push multi-architecture manifest
command: |
# This file will exist if a new version was published by
# our command in the previous job.
if [[ ! -e version.txt ]]; then
exit 0
else
echo "Building and pushing multi-architecture manifest from the master branch (release releases)"
rm -f ./.npmrc
# Set our version number using vars
export IMAGE_VERSION=$(cat version.txt)
export IMAGE_VERSION_FULL=v$IMAGE_VERSION
echo $IMAGE_VERSION
echo $IMAGE_VERSION_FULL
echo $DOCKER_PWD | docker login -u $DOCKER_LOGIN --password-stdin
# Create and push manifest for specific version
docker manifest create ohif/app:$IMAGE_VERSION_FULL \
--amend ohif/app:$IMAGE_VERSION_FULL-amd64 \
--amend ohif/app:$IMAGE_VERSION_FULL-arm64
docker manifest push ohif/app:$IMAGE_VERSION_FULL
# Create and push manifest for "latest" tag
docker manifest create ohif/app:latest \
--amend ohif/app:latest-amd64 \
--amend ohif/app:latest-arm64
docker manifest push ohif/app:latest
fi
DOCKER_BETA_MULTIARCH_MANIFEST:
<<: *defaults
resource_class: large
steps:
- attach_workspace:
at: ~/repo
- setup_remote_docker:
docker_layer_caching: false
- run:
name: Create and push multi-architecture manifest (Beta)
command: |
echo $(ls -l)
# This file will exist if a new version was published by
# our command in the previous job.
if [[ ! -e version.txt ]]; then
exit 0
else
echo "Building and pushing multi-architecture manifest from the master branch (beta releases)"
rm -f ./.npmrc
# Set our version number using vars
export IMAGE_VERSION=$(cat version.txt)
export IMAGE_VERSION_FULL=v$IMAGE_VERSION
echo $IMAGE_VERSION
echo $IMAGE_VERSION_FULL
echo $DOCKER_PWD | docker login -u $DOCKER_LOGIN --password-stdin
# Create and push manifest for specific beta version
docker manifest create ohif/app:$IMAGE_VERSION_FULL \
--amend ohif/app:$IMAGE_VERSION_FULL-amd64 \
--amend ohif/app:$IMAGE_VERSION_FULL-arm64
docker manifest push ohif/app:$IMAGE_VERSION_FULL
# Create and push manifest for "latest-beta" tag
docker manifest create ohif/app:latest-beta \
--amend ohif/app:latest-beta-amd64 \
--amend ohif/app:latest-beta-arm64
docker manifest push ohif/app:latest-beta
fi
workflows: workflows:
PR_CHECKS: PR_CHECKS:
jobs: jobs:
@ -384,6 +466,10 @@ workflows:
- DOCKER_BETA_PUBLISH_ARM: - DOCKER_BETA_PUBLISH_ARM:
requires: requires:
- NPM_PUBLISH - NPM_PUBLISH
- DOCKER_BETA_MULTIARCH_MANIFEST:
requires:
- DOCKER_BETA_PUBLISH
- DOCKER_BETA_PUBLISH_ARM
# viewer.ohif.org # viewer.ohif.org
DEPLOY_RELEASE: DEPLOY_RELEASE:
@ -405,3 +491,7 @@ workflows:
- DOCKER_RELEASE_PUBLISH_ARM: - DOCKER_RELEASE_PUBLISH_ARM:
requires: requires:
- NPM_PUBLISH - NPM_PUBLISH
- DOCKER_MULTIARCH_MANIFEST:
requires:
- DOCKER_RELEASE_PUBLISH
- DOCKER_RELEASE_PUBLISH_ARM

BIN
bun.lockb

Binary file not shown.

View File

@ -46,8 +46,8 @@
}, },
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"@cornerstonejs/adapters": "^2.14.2", "@cornerstonejs/adapters": "^2.14.7",
"@cornerstonejs/core": "^2.14.2", "@cornerstonejs/core": "^2.14.7",
"@kitware/vtk.js": "32.1.1", "@kitware/vtk.js": "32.1.1",
"react-color": "^2.19.3" "react-color": "^2.19.3"
} }

View File

@ -46,8 +46,8 @@
}, },
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"@cornerstonejs/adapters": "^2.14.2", "@cornerstonejs/adapters": "^2.14.7",
"@cornerstonejs/core": "^2.14.2", "@cornerstonejs/core": "^2.14.7",
"@kitware/vtk.js": "32.1.1", "@kitware/vtk.js": "32.1.1",
"react-color": "^2.19.3" "react-color": "^2.19.3"
} }

View File

@ -46,9 +46,9 @@
}, },
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"@cornerstonejs/adapters": "^2.14.2", "@cornerstonejs/adapters": "^2.14.7",
"@cornerstonejs/core": "^2.14.2", "@cornerstonejs/core": "^2.14.7",
"@cornerstonejs/tools": "^2.14.2", "@cornerstonejs/tools": "^2.14.7",
"classnames": "^2.3.2" "classnames": "^2.3.2"
} }
} }

View File

@ -42,8 +42,8 @@
}, },
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"@cornerstonejs/core": "^2.14.2", "@cornerstonejs/core": "^2.14.7",
"@cornerstonejs/tools": "^2.14.2", "@cornerstonejs/tools": "^2.14.7",
"classnames": "^2.3.2" "classnames": "^2.3.2"
} }
} }

View File

@ -38,7 +38,7 @@
"@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2",
"@cornerstonejs/codec-openjpeg": "^1.2.4", "@cornerstonejs/codec-openjpeg": "^1.2.4",
"@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/codec-openjph": "^2.4.5",
"@cornerstonejs/dicom-image-loader": "^2.14.2", "@cornerstonejs/dicom-image-loader": "^2.14.7",
"@icr/polyseg-wasm": "^0.4.0", "@icr/polyseg-wasm": "^0.4.0",
"@ohif/core": "3.10.0-beta.38", "@ohif/core": "3.10.0-beta.38",
"@ohif/ui": "3.10.0-beta.38", "@ohif/ui": "3.10.0-beta.38",
@ -55,9 +55,9 @@
}, },
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"@cornerstonejs/adapters": "^2.14.2", "@cornerstonejs/adapters": "^2.14.7",
"@cornerstonejs/core": "^2.14.2", "@cornerstonejs/core": "^2.14.7",
"@cornerstonejs/tools": "^2.14.2", "@cornerstonejs/tools": "^2.14.7",
"@icr/polyseg-wasm": "^0.4.0", "@icr/polyseg-wasm": "^0.4.0",
"@kitware/vtk.js": "32.1.1", "@kitware/vtk.js": "32.1.1",
"html2canvas": "^1.4.1", "html2canvas": "^1.4.1",

View File

@ -32,8 +32,8 @@
"start": "yarn run dev" "start": "yarn run dev"
}, },
"peerDependencies": { "peerDependencies": {
"@cornerstonejs/core": "^2.14.2", "@cornerstonejs/core": "^2.14.7",
"@cornerstonejs/tools": "^2.14.2", "@cornerstonejs/tools": "^2.14.7",
"@ohif/core": "3.10.0-beta.38", "@ohif/core": "3.10.0-beta.38",
"@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.38", "@ohif/extension-cornerstone-dicom-sr": "3.10.0-beta.38",
"@ohif/extension-default": "3.10.0-beta.38", "@ohif/extension-default": "3.10.0-beta.38",

View File

@ -53,7 +53,7 @@
"@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2",
"@cornerstonejs/codec-openjpeg": "^1.2.4", "@cornerstonejs/codec-openjpeg": "^1.2.4",
"@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/codec-openjph": "^2.4.5",
"@cornerstonejs/dicom-image-loader": "^2.14.2", "@cornerstonejs/dicom-image-loader": "^2.14.7",
"@emotion/serialize": "^1.1.3", "@emotion/serialize": "^1.1.3",
"@ohif/core": "3.10.0-beta.38", "@ohif/core": "3.10.0-beta.38",
"@ohif/extension-cornerstone": "3.10.0-beta.38", "@ohif/extension-cornerstone": "3.10.0-beta.38",

View File

@ -37,7 +37,7 @@
"@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2",
"@cornerstonejs/codec-openjpeg": "^1.2.4", "@cornerstonejs/codec-openjpeg": "^1.2.4",
"@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/codec-openjph": "^2.4.5",
"@cornerstonejs/dicom-image-loader": "^2.14.2", "@cornerstonejs/dicom-image-loader": "^2.14.7",
"@ohif/ui": "3.10.0-beta.38", "@ohif/ui": "3.10.0-beta.38",
"cornerstone-math": "0.1.9", "cornerstone-math": "0.1.9",
"dicom-parser": "^1.8.21" "dicom-parser": "^1.8.21"

View File

@ -2580,10 +2580,10 @@
resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9"
integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==
"@cornerstonejs/adapters@^2.14.2": "@cornerstonejs/adapters@^2.14.7":
version "2.14.2" version "2.14.7"
resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-2.14.2.tgz#cd1f750c34a7b723e09092ba3b2486d287a9ccb2" resolved "https://registry.yarnpkg.com/@cornerstonejs/adapters/-/adapters-2.14.7.tgz#ecdcbc9701b26ce5c0336a6252ed44b876b51d87"
integrity sha512-/zKVRwyHa0qjYWYKLQXx5776MJGcyEKYt7sXmtsKDj6AJlfx0W8UMP2/DFDlaadfX5jKckHCSDrPOtzzjYbIbQ== integrity sha512-3vbWSfo6k68UzwLQ9ZVgL8DmTJA4mOEXBkETAk2M3+5Jky1EBT5X84UFKVIRzByk/76pG08D/NmPk2/QaO+FUA==
dependencies: dependencies:
"@babel/runtime-corejs2" "^7.17.8" "@babel/runtime-corejs2" "^7.17.8"
buffer "^6.0.3" buffer "^6.0.3"
@ -2616,19 +2616,19 @@
resolved "https://registry.yarnpkg.com/@cornerstonejs/codec-openjph/-/codec-openjph-2.4.5.tgz#8690b61a86fa53ef38a70eee9d665a79229517c0" resolved "https://registry.yarnpkg.com/@cornerstonejs/codec-openjph/-/codec-openjph-2.4.5.tgz#8690b61a86fa53ef38a70eee9d665a79229517c0"
integrity sha512-MZCUy8VG0VG5Nl1l58+g+kH3LujAzLYTfJqkwpWI2gjSrGXnP6lgwyy4GmPRZWVoS40/B1LDNALK905cNWm+sg== integrity sha512-MZCUy8VG0VG5Nl1l58+g+kH3LujAzLYTfJqkwpWI2gjSrGXnP6lgwyy4GmPRZWVoS40/B1LDNALK905cNWm+sg==
"@cornerstonejs/core@^2.14.2": "@cornerstonejs/core@^2.14.7":
version "2.14.2" version "2.14.7"
resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-2.14.2.tgz#35817e0c5cc9e3641df757e43e071ee3c91fde54" resolved "https://registry.yarnpkg.com/@cornerstonejs/core/-/core-2.14.7.tgz#7092f5038ecd2b88ce1417a86885cd5711d04709"
integrity sha512-1a8+b4RtnyPRI6bevfEu4KXhVNiEd1CNeaByKegWbd+FyE5yek6DIwW0fJPIxdhA+z6nacFVdKtgbdAwuTDqoA== integrity sha512-92gTKuY+Ea0xsEJB1niC7FiNsaWDK7R274ZEEcu+4vb0u6P3eIQOKCut8aKVV5JpVk3C7kJ5QjCMWdG/RNp/eg==
dependencies: dependencies:
"@kitware/vtk.js" "32.1.1" "@kitware/vtk.js" "32.1.1"
comlink "^4.4.1" comlink "^4.4.1"
gl-matrix "^3.4.3" gl-matrix "^3.4.3"
"@cornerstonejs/dicom-image-loader@^2.14.2": "@cornerstonejs/dicom-image-loader@^2.14.7":
version "2.14.2" version "2.14.7"
resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-2.14.2.tgz#643c3d7d1f8ba6632665bce94e9a54c52dedc2b7" resolved "https://registry.yarnpkg.com/@cornerstonejs/dicom-image-loader/-/dicom-image-loader-2.14.7.tgz#9de7a5b6fd7dee030f7da5d705de4341af318bb5"
integrity sha512-qNKN+7FoiT6flhhWrNoBYs/v6meiuWtiteo08IKIf+uVpjABnk7lEHXozsQ4GQIieCJ7jhqHHXPMbSHQh6Jktw== integrity sha512-l/Vbz+5Vd076N+3xFr55aqkHxItqWe4HXjuvLBqm4orb3jWULIoM/34RJg0vGqgXj/UrB4OXxZfwDcuYBDAgEg==
dependencies: dependencies:
"@cornerstonejs/codec-charls" "^1.2.3" "@cornerstonejs/codec-charls" "^1.2.3"
"@cornerstonejs/codec-libjpeg-turbo-8bit" "^1.2.2" "@cornerstonejs/codec-libjpeg-turbo-8bit" "^1.2.2"
@ -2639,10 +2639,10 @@
pako "^2.0.4" pako "^2.0.4"
uuid "^9.0.0" uuid "^9.0.0"
"@cornerstonejs/tools@^2.14.2": "@cornerstonejs/tools@^2.14.7":
version "2.14.2" version "2.14.7"
resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-2.14.2.tgz#2647a564bfda88fa11c7edb6ad691fb4b1ec080c" resolved "https://registry.yarnpkg.com/@cornerstonejs/tools/-/tools-2.14.7.tgz#da0b4485aff8aa72cd88a74ad30d0a12d762f107"
integrity sha512-kiWD/hmXxX7N60KLghuN7aItJ2z1jaO3TnCR2gkQ865Rl/aV5yGZEonUqlH4iHrCDS2d7f0NcXQX0sKAc7PJXw== integrity sha512-8IorarVROvevrWfkKRFGjfDONa14i9V3auWsZTAyi8J0YQ2PKrLx2MLoXWsFYQS4AHhaWRAuVl3GsKR+V/QbzQ==
dependencies: dependencies:
"@types/offscreencanvas" "2019.7.3" "@types/offscreencanvas" "2019.7.3"
comlink "^4.4.1" comlink "^4.4.1"