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
70 changes: 70 additions & 0 deletions .github/workflows/build-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: Docker Build Test

on:
pull_request:
branches:
- main
- master
paths:
- 'docker/**'
- '.github/workflows/build-test.yml'

jobs:
build-and-test:
runs-on: ubuntu-latest
timeout-minutes: 30

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Build Docker image
uses: docker/build-push-action@v5
with:
context: .
file: ./docker/Dockerfile
push: false
load: true
tags: nf-artist:pr-${{ github.event.pull_request.number }}
cache-from: type=gha
cache-to: type=gha,mode=max

- name: Smoke Test - Verify Dependencies
run: |
docker run --rm nf-artist:pr-${{ github.event.pull_request.number }} \
python -c "
import sys
import numpy
import zarr

print(f'Python: {sys.version}')
print(f'NumPy: {numpy.__version__}')
print(f'Zarr: {zarr.__version__}')

# Verify NumPy 2.x is installed
assert numpy.__version__.startswith('2.'), f'Expected NumPy 2.x, got {numpy.__version__}'

# Verify zarr v3 is installed
assert zarr.__version__.startswith('3.'), f'Expected zarr 3.x, got {zarr.__version__}'

# Test that zarr works with NumPy 2.x (no np.PINF errors)
import numpy as np
arr = zarr.array(np.random.random((10, 10)))
print(f'✓ Successfully created zarr array with shape {arr.shape}')

print('✓ All dependency checks passed!')
"

- name: Import Test - Verify All Critical Packages
run: |
docker run --rm nf-artist:pr-${{ github.event.pull_request.number }} \
python -c "
import openslide
import cv2
import synapseclient
import ome_types
print('✓ All critical packages imported successfully!')
"
9 changes: 1 addition & 8 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -49,14 +49,7 @@ RUN apt-get update && apt-get install --yes --no-install-recommends \
RUN source /venv/bin/activate && \
git clone https://github.com/adamjtaylor/miniature.git -b v2 && \
git clone https://github.com/adamjtaylor/auto-minerva.git -b minerva1point5 && \
git clone https://github.com/labsyspharm/minerva-author.git -b v1.14.0 && \
pip install git+https://github.com/labsyspharm/minerva-lib-python@master#egg=minerva-lib && \
pip install \
openslide-python \
opencv-python-headless \
synapseclient \
mantel \
"ome_types>=0.4.2"
git clone https://github.com/labsyspharm/minerva-author.git -b v1.14.0

ENV VIRTUAL_ENV=/venv
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
12 changes: 9 additions & 3 deletions docker/environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ channels:
- fastai
- bioconda
dependencies:
- numpy>=1.23.0,<2.0
- numpy>=1.26.0
- zarr>=3.0.0
- Pillow
- flask
- waitress
Expand All @@ -16,11 +17,9 @@ dependencies:
- scikit-image
- pandas
- pooch
- zarr
- cython
- pyinstaller
- altair
- matplotlib
- umap-learn
- scikit-learn
- colormath
Expand All @@ -33,3 +32,10 @@ dependencies:
- libvips
- estimagic
- pyvips
- pip:
- openslide-python
- opencv-python-headless
- synapseclient
- mantel
- "ome_types>=0.4.2"
- git+https://github.com/labsyspharm/minerva-lib-python@master#egg=minerva-lib
Loading