Skip to content
Open
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
30 changes: 25 additions & 5 deletions feature-versions/state.json
Original file line number Diff line number Diff line change
@@ -1,22 +1,42 @@
{
"ghcr.io/devcontainers/features/aws-cli": {
"tag": "1",
"installed": "@sha256:bbc9fd513c22e331953126c75ad7b2ed1f9044f1cd5890b7073b634810459b18"
"installed": "sha256:bbc9fd513c22e331953126c75ad7b2ed1f9044f1cd5890b7073b634810459b18",
"filter": ".*\\/\\.devcontainer\\.json"
},
"ghcr.io/devcontainers/features/java": {
"tag": "1",
"installed": "@sha256:df67d6ff6e9cdd858207ae9e92a99ddb88384b789f79eecd6f873216e951d286"
"installed": "sha256:df67d6ff6e9cdd858207ae9e92a99ddb88384b789f79eecd6f873216e951d286",
"filter": ".*\\/\\.devcontainer\\.json"
},
"ghcr.io/dhoeric/features/google-cloud-cli": {
"tag": "1",
"installed": "@sha256:fa5d894718825c5ad8009ac8f2c9f0cea3d1661eb108a9d465cba9f3fc48965f"
"installed": "sha256:fa5d894718825c5ad8009ac8f2c9f0cea3d1661eb108a9d465cba9f3fc48965f",
"filter": ".*\\/\\.devcontainer\\.json"
},
"ghcr.io/rocker-org/devcontainer-features/r-packages": {
"tag": "1",
"installed": "@sha256:1a4ec64c4d2060e78e9c812bd3b3622c7e008465d566a2781c0e2b17a82592e5"
"installed": "sha256:1a4ec64c4d2060e78e9c812bd3b3622c7e008465d566a2781c0e2b17a82592e5",
"filter": ".*\\/\\.devcontainer\\.json"
},
"ghcr.io/devcontainers/features/common-utils": {
"tag": "2",
"installed": "@sha256:00fd45550f578d9d515044d9e2226e908dbc3d7aa6fcb9dee4d8bdb60be114cf"
"installed": "sha256:00fd45550f578d9d515044d9e2226e908dbc3d7aa6fcb9dee4d8bdb60be114cf",
"filter": ".*\\/\\.devcontainer\\.json"
},
"us-west2-docker.pkg.dev/shared-pub-buckets-94mvrf/workbench-artifacts/app-wondershaper": {
"tag": "ov-prod",
"installed": "sha256:534566080902a5b52d7c21d09cd3a487a160241f90f574a623a95a03b5e50386",
"filter": ".*\\/docker-compose.yaml"
},
"us-west2-docker.pkg.dev/shared-pub-buckets-94mvrf/workbench-artifacts/app-jupyter-extension-builder": {
"tag": "ov-prod",
"installed": "sha256:10896c245e1329f6fcbc37c7253d654d3b7dd65cf4c50975b27fe55e40dcc69f",
"filter": ".*\\/Dockerfile"
},
"us-west2-docker.pkg.dev/shared-pub-buckets-94mvrf/workbench-artifacts/app-aou-jupyter": {
"tag": "ov-prod",
"installed": "sha256:c18c4f2069f123d2436f28e2e51363a69b109ae4151c6d53d0a7348b5e437263",
"filter": ".*\\/Dockerfile"
}
}
20 changes: 11 additions & 9 deletions feature-versions/update.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,23 +12,25 @@ readonly STATE_FILE
STATE="$(cat "$STATE_FILE")"
readonly STATE

for FEATURE in $(echo "$STATE" | jq -r 'keys | .[]'); do
echo "Processing feature: $FEATURE"
INSTALLED="$FEATURE$(jq -r --arg feat "$FEATURE" '.[$feat].installed' <<< "$STATE")"
LATEST="$(devcontainer features info manifest "$FEATURE" --output-format=json | jq -r '.canonicalId')"
for IMAGE in $(echo "$STATE" | jq -r 'keys | .[]'); do
echo "Processing image: $IMAGE"
TAG="$(jq -r --arg feat "$IMAGE" '.[$feat].tag' <<< "$STATE")"
FILTER="$(jq -r --arg feat "$IMAGE" '.[$feat].filter' <<< "$STATE")"
INSTALLED="$IMAGE@$(jq -r --arg feat "$IMAGE" '.[$feat].installed' <<< "$STATE")"
LATEST="$IMAGE@$(docker buildx imagetools inspect "$IMAGE:$TAG" | grep "Digest:" | awk '{print $2}')"

if [ "$INSTALLED" != "$LATEST" ]; then
echo "Updating $FEATURE from $INSTALLED to $LATEST"
echo "Updating $IMAGE from $INSTALLED to $LATEST"

pushd "$SRC_DIR"
find . -name ".devcontainer.json" -print0 | xargs -0L1 sed -i "s|\"$INSTALLED\"|\"$LATEST\"|g"
find . -regex "$FILTER" -print0 | xargs -0L1 sed -i "s|$INSTALLED|$LATEST|g"
popd

LATEST_TAG="@$(echo "$LATEST" | cut -d'@' -f2)"
NEW_STATE="$(jq --arg feat "$FEATURE" --arg latest "$LATEST_TAG" '.[$feat].installed = $latest' "$STATE_FILE")"
LATEST_TAG="$(echo "$LATEST" | cut -d'@' -f2)"
NEW_STATE="$(jq --arg feat "$IMAGE" --arg latest "$LATEST_TAG" '.[$feat].installed = $latest' "$STATE_FILE")"
cat <<< "$NEW_STATE" > "$STATE_FILE"
else
echo "$FEATURE is already up to date."
echo "$IMAGE is already up to date."
fi

echo ""
Expand Down
4 changes: 2 additions & 2 deletions src/jupyter-aou/build/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Build the custom extension
FROM us-west2-docker.pkg.dev/shared-pub-buckets-94mvrf/workbench-artifacts/app-jupyter-extension-builder@sha256:70ba6449275a581059f2f851f44bb8e4a1e5d42e73ec512af362e9de0618cf2f AS extension-builder
FROM us-west2-docker.pkg.dev/shared-pub-buckets-94mvrf/workbench-artifacts/app-jupyter-extension-builder@sha256:10896c245e1329f6fcbc37c7253d654d3b7dd65cf4c50975b27fe55e40dcc69f AS extension-builder

COPY extension /extension
# Original extension is https://github.com/QuantStack/jupyterlab-snippets;
Expand All @@ -11,7 +11,7 @@ ADD https://github.com/darpan097/jupyterlab-snippets.git#a27c8429d2cfaf7aa9e4cad

RUN /build.sh /extension /dist

FROM us-west2-docker.pkg.dev/shared-pub-buckets-94mvrf/workbench-artifacts/app-aou-jupyter@sha256:6375f16454add4980acf83c75b70f6c7fce8668a674d2260a1ff0d20886ce60e
FROM us-west2-docker.pkg.dev/shared-pub-buckets-94mvrf/workbench-artifacts/app-aou-jupyter@sha256:c18c4f2069f123d2436f28e2e51363a69b109ae4151c6d53d0a7348b5e437263

COPY snippets $JUPYTER_USER_HOME_DIR/.local/share/jupyter/snippets

Expand Down
2 changes: 1 addition & 1 deletion src/jupyter-aou/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ services:
# TODO(PHP-87353): Add remotefuse back. See https://github.com/verily-src/workbench-app-devcontainers/pull/227
wondershaper:
container_name: "wondershaper"
image: "us-west2-docker.pkg.dev/shared-pub-buckets-94mvrf/workbench-artifacts/app-wondershaper@sha256:dd9df1811b9d15f4f8d95b6e515a2371e12d238240b8ef7359be77d961e79e3a"
image: "us-west2-docker.pkg.dev/shared-pub-buckets-94mvrf/workbench-artifacts/app-wondershaper@sha256:534566080902a5b52d7c21d09cd3a487a160241f90f574a623a95a03b5e50386"
restart: always
network_mode: "host"
cap_add:
Expand Down
2 changes: 1 addition & 1 deletion src/nemo_jupyter_aou/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ services:
command: jupyter lab --ip=0.0.0.0 --port=8888 --no-browser --LabApp.token=''
wondershaper:
container_name: "wondershaper"
image: "us-west2-docker.pkg.dev/shared-pub-buckets-94mvrf/workbench-artifacts/app-wondershaper@sha256:dd9df1811b9d15f4f8d95b6e515a2371e12d238240b8ef7359be77d961e79e3a"
image: "us-west2-docker.pkg.dev/shared-pub-buckets-94mvrf/workbench-artifacts/app-wondershaper@sha256:534566080902a5b52d7c21d09cd3a487a160241f90f574a623a95a03b5e50386"
restart: always
network_mode: "host"
cap_add:
Expand Down
2 changes: 1 addition & 1 deletion src/workbench-jupyter-parabricks-aou/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ services:
command: ["jupyter", "lab", "--ip=0.0.0.0", "--port=8888", "--no-browser", "--LabApp.token=''"]
wondershaper:
container_name: "wondershaper"
image: "us-west2-docker.pkg.dev/shared-pub-buckets-94mvrf/workbench-artifacts/app-wondershaper@sha256:dd9df1811b9d15f4f8d95b6e515a2371e12d238240b8ef7359be77d961e79e3a"
image: "us-west2-docker.pkg.dev/shared-pub-buckets-94mvrf/workbench-artifacts/app-wondershaper@sha256:534566080902a5b52d7c21d09cd3a487a160241f90f574a623a95a03b5e50386"
restart: always
network_mode: "host"
cap_add:
Expand Down