Skip to content

Commit 9c638af

Browse files
authored
Merge pull request #127 from graphistry/dev/pass-cuda-versions-as-args
feat: add configurable CUDA versions and fix runtime issues
2 parents dad2a49 + 40da4ca commit 9c638af

6 files changed

Lines changed: 38 additions & 6 deletions

File tree

.github/workflows/ci.yml

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,16 @@ jobs:
6868
with:
6969
fetch-depth: 0
7070

71-
- name: get most recent tag
71+
- name: get base version from repo defaults
7272
run: |
73-
echo "RELEASE_VERSION=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV
73+
# Read default version from Dockerfile (e.g., v2.43.0-12.8 -> 2.43)
74+
DEFAULT_VERSION=$(sed -n 's/.*GRAPHISTRY_FORGE_BASE_VERSION=v\([0-9]*\.[0-9]*\).*/\1/p' src/docker/Dockerfile | head -1)
75+
76+
# Find latest tag for that major.minor
77+
LATEST_TAG=$(git tag -l "${DEFAULT_VERSION}.*" --sort=-v:refname | head -1)
78+
79+
echo "RELEASE_VERSION=${LATEST_TAG}" >> $GITHUB_ENV
80+
echo "Using base image: v${LATEST_TAG}-12.8"
7481
7582
- name: Free Disk Space
7683
env:

.github/workflows/dockerhubpublish.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ on:
1010
version:
1111
description: 'Version to bump to'
1212
required: false
13+
cuda_versions:
14+
description: 'JSON array of CUDA versions'
15+
required: false
16+
default: '["12.8", "11.8"]'
1317

1418
workflow_call:
1519

@@ -18,7 +22,7 @@ jobs:
1822
runs-on: ubuntu-latest-4-cores
1923
strategy:
2024
matrix:
21-
CUDA_SHORT_VERSION: ['12.8', '11.8']
25+
CUDA_SHORT_VERSION: ${{ fromJSON(inputs.cuda_versions || '["12.8", "11.8"]') }}
2226
fail-fast: true
2327

2428

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,16 @@ Extensions:
2121

2222
See [projects page](https://github.com/graphistry/graph-app-kit/projects) and [open pull requests](https://github.com/graphistry/graph-app-kit/pulls)
2323

24+
### Infra
25+
26+
* Add configurable `cuda_versions` input parameter to DockerHub publish workflow for flexible CI builds
27+
* CUDA versions can now be passed as a JSON array (e.g., `'["12.8", "11.8"]'`) when triggering workflow manually or from other workflows
28+
29+
### Fixes
30+
31+
* Change conda environment activation from `rapids` to `base` for compatibility with newer RAPIDS versions
32+
* Fix `AttributeError` when `LOG_LEVEL=TRACE` by mapping unsupported log levels (TRACE, VERBOSE) to DEBUG with stderr warning
33+
2434

2535
## [2.43.6 - 2025.08.21]
2636

src/bootstraps/scripts/graphistry-service-account.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ POST_SCRIPT="CELERY_BROKER_URL=zz python manage.py shell && echo done || { echo
2626
cd "${GRAPHISTRY_HOME}" \
2727
&& docker-compose exec -T nexus \
2828
bash -c \
29-
"source activate rapids && echo \"${ADD_USER_SCRIPT}; ${VERIFY_USER_SCRIPT}\" | ${POST_SCRIPT}" \
29+
"source activate base && echo \"${ADD_USER_SCRIPT}; ${VERIFY_USER_SCRIPT}\" | ${POST_SCRIPT}" \
3030
)
3131

3232
./hello-end.sh "$SCRIPT"

src/docker/entrypoint.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,5 +41,5 @@ if [ -v ST_LOG_LEVEL ]; then
4141
PASS_LOG_LEVEL="--logger.level=${ST_LOG_LEVEL}"
4242
fi
4343

44-
{ source activate rapids || echo ok ; } \
44+
{ source activate base || echo ok ; } \
4545
&& echo "pwd: `pwd`" && find . && streamlit run "$@" "${PASS_LOG_LEVEL}"

src/python/util/log.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import logging
22
import os
3+
import sys
34

45
# logging.basicConfig(format="%(levelname)s %(asctime)s %(name)s:%(message)s\n")
56
logging.basicConfig(format="%(levelname)s %(asctime)s %(name)s:%(message)s\n")
@@ -9,7 +10,17 @@ def getChild(*args, **kwargs):
910
logger = logging.getLogger('gak')
1011

1112
log_level_str = os.environ.get('LOG_LEVEL', 'ERROR').upper()
12-
log_level = getattr(logging, log_level_str)
13+
# Handle non-standard log levels gracefully
14+
try:
15+
log_level = getattr(logging, log_level_str)
16+
except AttributeError:
17+
# Map non-standard levels to closest standard level
18+
level_mapping = {
19+
'TRACE': logging.DEBUG,
20+
'VERBOSE': logging.DEBUG,
21+
}
22+
log_level = level_mapping.get(log_level_str, logging.ERROR)
23+
sys.stderr.write(f"Log level '{log_level_str}' not supported, mapping to {logging.getLevelName(log_level)}\n")
1324
logger.debug(f"util.log log_level == {log_level_str} ({log_level})")
1425

1526
out=logger.getChild(*args, **kwargs)

0 commit comments

Comments
 (0)