Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .github/workflows/CI-full.yml
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,7 @@ jobs:
needs_maven: true
needs_secrets: false
needs_installer_secrets: true
needs_vtk_wasm: true
- name: admin
dockerfile: docker/build/Dockerfile-admin-dev
context: .
Expand Down Expand Up @@ -233,6 +234,14 @@ jobs:
sudo tar -xvf deploy/deploy_dir_2025_03_18.tar
sudo chmod 777 -R deploy

# The 3D field viewer's wasm bundle is a pinned release asset, not a repo file, and only the
# clientgen image ships it. Fetching it here rather than in the maven build keeps a 12 MB
# download off every developer's machine for a feature that is disabled by default; developers
# who want the viewer locally run the same script themselves (see webapp-viewer/README.md).
- name: fetch vtk.wasm bundle for the field viewer
if: ${{ matrix.image.needs_vtk_wasm }}
run: node webapp-viewer/scripts/fetch-vtk-wasm.mjs

- name: Pre-build step
if: ${{ matrix.image.pre_build }}
run: ${{ matrix.image.pre_build }}
Expand Down
14 changes: 14 additions & 0 deletions docker/build/Dockerfile-clientgen-dev
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,20 @@ COPY ./vcell-client/target/vcell-client-0.0.1-SNAPSHOT.jar \
./vcell-client/target/maven-jars/*.jar \
/vcellclient/vcell-client/target/maven-jars/

#
# The 3D field viewer's web content, served by the client's own loopback field server from
# <installDir>/webviewer. webapp-viewer has no build step — the source directory is the deployable —
# so only what the browser actually loads is copied; the fetch script and package.json stay behind.
#
# assets/ holds the vtk.wasm bundle, which is gitignored and downloaded by CI before this image is
# built. If that step did not run, this COPY fails and the image build stops — which is the point:
# an installer that shipped the page without the bundle would 404 at the moment a user clicks
# "View in 3D".
#
COPY ./webapp-viewer/index.html ./webapp-viewer/viewer.js /vcellclient/webviewer/
COPY ./webapp-viewer/vendor /vcellclient/webviewer/vendor
COPY ./webapp-viewer/assets /vcellclient/webviewer/assets

COPY ./docker/build/installers /config/

WORKDIR /config
Expand Down
3 changes: 3 additions & 0 deletions docker/build/installers/VCell.install4j
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
<variable name="vcellLocalSolversDirPath" value="${compiler:mavenRootDir}/localsolvers" />
<variable name="vcellLicenseFilePath" value="${compiler:mavenRootDir}/thirdpartylicenses.txt" />
<variable name="vcellbngPerlPath" value="${compiler:mavenRootDir}/bionetgen" />
<variable name="vcellWebViewerPath" value="${compiler:mavenRootDir}/webviewer" />
</variables>
<codeSigning macEnabled="true" macPkcs12File="${compiler:macKeystore}" windowsEnabled="true" windowsPkcs12File="${compiler:winKeystore}">
<macAdditionalBinaries>
Expand Down Expand Up @@ -56,6 +57,7 @@
<mountPoint id="1473" location="resources" />
<mountPoint id="1474" location="localsolvers" />
<mountPoint id="1750" location="bionetgen" />
<mountPoint id="3200" location="webviewer" />
<mountPoint id="1348" root="1114" location="nativelibs" />
<mountPoint id="1349" root="1114" location="nativelibs/mac64" />
<mountPoint id="1342" root="1114" location="localsolvers" />
Expand All @@ -81,6 +83,7 @@
<dirEntry mountPoint="719" file="${compiler:vcellLibSourcePath}" subDirectory="maven-jars" />
<fileEntry mountPoint="1473" file="${compiler:vcellLicenseFilePath}" />
<dirEntry mountPoint="1750" file="${compiler:vcellbngPerlPath}" />
<dirEntry mountPoint="3200" file="${compiler:vcellWebViewerPath}" />
<dirEntry mountPoint="1349" file="${compiler:vcellNativeLibsDirSourcePath}/mac64" />
<dirEntry mountPoint="1353" file="${compiler:vcellLocalSolversDirPath}/mac64" fileMode="755" overrideFileMode="true" />
<dirEntry mountPoint="1355" file="${compiler:vcellNativeLibsDirSourcePath}/win64" />
Expand Down
2 changes: 1 addition & 1 deletion webapp-viewer/scripts/fetch-vtk-wasm.mjs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/usr/bin/env node
// Build-time fetch of VCell's VTK.wasm bundle into webapp-ng's assets, so the field viewer loads it
// Build-time fetch of VCell's VTK.wasm bundle into webapp-viewer's assets, so the field viewer loads it
// SAME-ORIGIN (GitHub release assets can't be fetched cross-origin from the browser — no CORS header).
// The @kitware/vtk-wasm loader's loadAsync({url}) takes the .tar.gz and untars it in-browser
// (DecompressionStream + untar), so we serve the .tar.gz as-is. Idempotent. Env:
Expand Down
Loading