Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
956ea8e
Merge pull request #1 from NASA-AMMOS/opensource-vicar-build
HuiJun Apr 29, 2026
5b8c5a5
Fix github actions test
HuiJun Apr 29, 2026
5abdcd2
Merge pull request #2 from NASA-AMMOS/fix_workflow
HuiJun Apr 29, 2026
9541eab
Add debugging to try and catch error
HuiJun May 6, 2026
0fd786d
Merge pull request #3 from NASA-AMMOS/debug_tests
HuiJun May 6, 2026
8381e89
Extract Docker image component into terrain-intelligence-generator su…
HuiJun May 6, 2026
5ecadad
Merge remote-tracking branch 'origin/master' into extract-terrain-int…
HuiJun May 6, 2026
220cf49
Merge pull request #4 from NASA-AMMOS/extract-terrain-intelligence-ge…
HuiJun May 6, 2026
b832a21
Try to handle vicar exit codes
HuiJun May 6, 2026
cf9144c
Merge pull request #5 from NASA-AMMOS/handle_errors
HuiJun May 6, 2026
f109799
Bust Docker cache to force wrapper regeneration with exit code fix
HuiJun May 6, 2026
831bd45
Update documentation for the image renaming
HuiJun May 20, 2026
fc59f5c
Small update to demo
HuiJun May 20, 2026
f0606d4
Merge pull request #6 from NASA-AMMOS/feature/update_docs
HuiJun May 20, 2026
6180c80
Add MARS calibration mounting design spec for vicar-native-toolkit
HuiJun Jun 3, 2026
5dd4a2a
Add MARS calibration mounting design spec for vicar-native-toolkit
HuiJun Jun 3, 2026
6b1d012
feat: Replace Python vicario with Java implementation for better imag…
HuiJun Jun 4, 2026
e1f124d
feat: Replace Python vicario with Java implementation for better imag…
HuiJun Jun 4, 2026
0be9b51
fix: Simplify .dockerignore to allow vicario.jar copy
HuiJun Jun 4, 2026
b041fb5
fix: Simplify .dockerignore to allow vicario.jar copy
HuiJun Jun 4, 2026
c7cb89e
Compact context and add in java vicar
HuiJun Jun 9, 2026
65f5f8e
Compact context and add in java vicar
HuiJun Jun 9, 2026
641d04a
Update demo and remove VISOR calibrations from image
HuiJun Jun 9, 2026
8981aba
Merge conflicts resolved: VISOR externalized
HuiJun Jun 9, 2026
dc70ab2
Add new demo for native toolkit and updates to original mesh generati…
HuiJun Jun 15, 2026
c2d8ea1
Reduce script complexity
HuiJun Jun 17, 2026
6c2f552
Update documentation
HuiJun Jun 18, 2026
882b095
docs: Reorganize vicar-native-toolkit documentation
HuiJun Jun 24, 2026
0476f02
Add design spec for TIG adaptation guide
HuiJun Jun 24, 2026
cb8bd2c
Update demos with more processing
HuiJun Jun 30, 2026
e0ff284
Merge: Resolve DEMO.md conflicts and reorganize docs into docs/ folder
HuiJun Jun 30, 2026
858e71a
Use multistage builds to try and reduce size. Also remove source and …
HuiJun Jun 30, 2026
266b2c9
Adding modified vicario jar
HuiJun Jun 30, 2026
7b9b9f0
Remove superpowers specs from git tracking
HuiJun Jun 30, 2026
f8b9363
Fix GitHub Actions context for vicario.jar
HuiJun Jun 30, 2026
8ca1c38
Merge pull request #7 from NASA-AMMOS/feature/java-vicario
HuiJun Jun 30, 2026
e150b90
Merge branch 'develop' of github.com:NASA-AMMOS/tig into develop
HuiJun Jun 30, 2026
97c18dc
Fix GitHub Actions: Remove LD_LIBRARY_PATH self-reference and correct…
HuiJun Jun 30, 2026
49284c4
Remove mars_calibration_m20 symlink - calibration now at top-level
HuiJun Jun 30, 2026
039777b
Merge pull request #9 from NASA-AMMOS/fix/github-actions-visor-test
HuiJun Jun 30, 2026
d8666e8
Merge branch 'develop' of github.com:NASA-AMMOS/tig into develop
HuiJun Jul 1, 2026
7bb8d3b
fix: remove Python vicario and Pillow dependency
HuiJun Jul 1, 2026
c367675
Merge pull request #10 from NASA-AMMOS/fix/remove-python-vicario
HuiJun Jul 1, 2026
235b278
fix: CI docker exec test handles VICAR non-zero exit codes
HuiJun Jul 1, 2026
a0857a7
Merge pull request #11 from NASA-AMMOS/fix/ci-docker-exec-exit-codes
HuiJun Jul 1, 2026
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
109 changes: 39 additions & 70 deletions .github/workflows/build-publish-terrain-intelligence-generator.yml
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ jobs:
id: build
uses: docker/build-push-action@v5
with:
context: ./terrain-intelligence-generator
context: ./terrain-intelligence-generator/docker
file: ./terrain-intelligence-generator/docker/Dockerfile
platforms: linux/amd64
push: ${{ github.event_name != 'pull_request' && (github.event.inputs.push_to_registry != 'false') }}
Expand Down Expand Up @@ -155,14 +155,13 @@ jobs:

if [ "${{ github.event_name }}" != "pull_request" ]; then
echo "**Test Results:**" >> $GITHUB_STEP_SUMMARY
echo "✅ 15 comprehensive tests executed" >> $GITHUB_STEP_SUMMARY
echo "✅ 14 comprehensive tests executed" >> $GITHUB_STEP_SUMMARY
echo "- Container startup and environment" >> $GITHUB_STEP_SUMMARY
echo "- Directory structure verification (flattening)" >> $GITHUB_STEP_SUMMARY
echo "- Wrapper scripts (545 commands)" >> $GITHUB_STEP_SUMMARY
echo "- VICAR operations (gen, list, copy, stretch)" >> $GITHUB_STEP_SUMMARY
echo "- vicario converter (PNG, JPEG, TIFF)" >> $GITHUB_STEP_SUMMARY
echo "- VISOR sample data access" >> $GITHUB_STEP_SUMMARY
echo "- Python/Pillow dependencies" >> $GITHUB_STEP_SUMMARY
echo "- VISOR data not bundled (external mount)" >> $GITHUB_STEP_SUMMARY
echo "- Docker exec pattern (terrain-intelligence-generator)" >> $GITHUB_STEP_SUMMARY
echo "- File persistence to host" >> $GITHUB_STEP_SUMMARY
echo "- MARS commands (345 programs)" >> $GITHUB_STEP_SUMMARY
Expand Down Expand Up @@ -375,89 +374,57 @@ jobs:
'
echo ""

# Test 11: VISOR sample data access
# Test 11: Verify VISOR data is NOT bundled (should be mounted at runtime)
echo "============================================"
echo "Test 11: VISOR sample data"
echo "Test 11: VISOR data not bundled"
echo "============================================"
docker run --rm ${IMAGE_TAG} bash -c '
if [ -d "$VISOR_SAMPLES" ]; then
SAMPLE_COUNT=$(find $VISOR_SAMPLES -type f 2>/dev/null | wc -l)
echo "✓ VISOR sample data accessible ($SAMPLE_COUNT files)"
if [ ! -d "$VISOR_SAMPLES" ] && [ ! -d "$VISOR_CALIB" ]; then
echo "✓ VISOR data not bundled (mount at runtime as documented)"
else
echo "✗ ERROR: VISOR sample data not found"
exit 1
fi

if [ -d "$VISOR_CALIB" ]; then
CALIB_COUNT=$(find $VISOR_CALIB -type f 2>/dev/null | wc -l)
echo "✓ VISOR calibration data accessible ($CALIB_COUNT files)"
else
echo "✗ ERROR: VISOR calibration data not found"
exit 1
fi
'
echo ""

# Test 12: Python and dependencies
echo "============================================"
echo "Test 12: Python and dependencies"
echo "============================================"
docker run --rm ${IMAGE_TAG} bash -c '
python3 --version
python3 -c "import PIL; print(f\"Pillow {PIL.__version__}\")"
if [ $? -eq 0 ]; then
echo "✓ Python and Pillow available"
else
echo "✗ ERROR: Python dependencies missing"
exit 1
echo "✗ WARNING: VISOR data found in image (should be external)"
[ -d "$VISOR_SAMPLES" ] && echo " - VISOR_SAMPLES exists"
[ -d "$VISOR_CALIB" ] && echo " - VISOR_CALIB exists"
fi
'
echo ""

# Test 13: Docker exec pattern (vicar-native-toolkit simulation)
# Test 12: Docker exec pattern (vicar-native-toolkit simulation)
echo "============================================"
echo "Test 13: Docker exec pattern (long-running container)"
echo "Test 12: Docker exec pattern (long-running container)"
echo "============================================"
docker run -d --name vicar-test-container -v ${TEST_WORKSPACE}:/workspace:Z ${IMAGE_TAG} tail -f /dev/null
sleep 2

if ! docker exec vicar-test-container gen /workspace/exec_test.vic 128 128; then
# VICAR commands return non-zero exit codes on success, so run them
# and verify by checking output files rather than exit codes
docker exec vicar-test-container gen /workspace/exec_test.vic 128 128 || true
if ! docker exec vicar-test-container test -f /workspace/exec_test.vic; then
echo "✗ ERROR: gen command failed in exec pattern"
docker stop vicar-test-container
docker rm vicar-test-container
docker stop vicar-test-container && docker rm vicar-test-container
exit 1
fi
echo "✓ gen via docker exec"

if ! docker exec vicar-test-container list /workspace/exec_test.vic | head -10; then
echo "✗ ERROR: list command failed in exec pattern"
docker stop vicar-test-container
docker rm vicar-test-container
exit 1
fi
docker exec vicar-test-container list /workspace/exec_test.vic || true
echo "✓ list via docker exec"

if ! docker exec vicar-test-container vicario /workspace/exec_test.vic /workspace/exec_test.png; then
docker exec vicar-test-container vicario /workspace/exec_test.vic /workspace/exec_test.png || true
if ! docker exec vicar-test-container test -f /workspace/exec_test.png; then
echo "✗ ERROR: vicario command failed in exec pattern"
docker stop vicar-test-container
docker rm vicar-test-container
exit 1
fi

if docker exec vicar-test-container test -f /workspace/exec_test.png; then
echo "✓ Docker exec pattern works correctly"
else
echo "✗ ERROR: Docker exec pattern failed - output file not created"
docker stop vicar-test-container
docker rm vicar-test-container
docker stop vicar-test-container && docker rm vicar-test-container
exit 1
fi
echo "✓ vicario via docker exec"

echo "✓ Docker exec pattern works correctly"
docker stop vicar-test-container
docker rm vicar-test-container
echo ""

# Test 14: File persistence verification
# Test 13: File persistence verification
echo "============================================"
echo "Test 14: File persistence to host"
echo "Test 13: File persistence to host"
echo "============================================"
echo "Files created in test workspace:"
ls -lh ${TEST_WORKSPACE}
Expand All @@ -479,9 +446,9 @@ jobs:
fi
echo ""

# Test 15: MARS commands availability
# Test 14: MARS commands availability
echo "============================================"
echo "Test 15: MARS commands availability"
echo "Test 14: MARS commands availability"
echo "============================================"
docker run --rm ${IMAGE_TAG} bash -c '
MARS_COUNT=$(ls /usr/local/bin | grep -c "^mars")
Expand Down Expand Up @@ -530,11 +497,9 @@ jobs:
- VICAR image processing tools (pre-built binaries)
- TAE (Terminal Application Executive)
- MARS terrain processing tools
- Python 3.9 runtime
- Vicario - VICAR to PNG/JPEG/TIFF converter
- VISOR calibration files (Phoenix, MER missions)
- VISOR sample data for testing
- All necessary runtime dependencies
- Vicario (Java) - VICAR to PNG/JPEG/TIFF converter
- Runtime-ready for external calibration/data mounts
- All necessary runtime dependencies

### Quick Start

Expand Down Expand Up @@ -568,9 +533,13 @@ jobs:
- `opensource` - Latest open-source build
- `latest` - Latest stable release

### Data Locations Inside Container
- VISOR calibrations: `/usr/local/vicar/visor_data/calib`
- VISOR sample data: `/usr/local/vicar/visor_data/samples`
### Mount Points for External Data
Mount calibration/sample data at runtime:
- VISOR calibrations: `-v /path/to/calib:/usr/local/vicar/visor_calib:ro`
- VISOR samples: `-v /path/to/samples:/usr/local/vicar/visor_samples:ro`
- MARS calibration: `-v /path/to/mars_calib:/usr/local/vicar/mars_calib:ro`

See Dockerfile comments for download instructions.

### Source Code
- VICAR: https://github.com/NASA-AMMOS/VICAR
Expand Down
50 changes: 50 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Workspace directories - generated by demos
workspace/
workspace-*/

# Demo data mount points
/m2020/
/data/

# Calibration files - camera models and parameters (not for public release)
/calibration/

# IDE files
.idea/
.vscode/
*.swp
*.swo
*~

# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
*.egg-info/
dist/
build/

# Logs
*.log
demo-run.log

# MacOS
.DS_Store
.AppleDouble
.LSOverride

# Temporary files
*.tmp
*.bak
*.old
*.backup

# direnv
.envrc.local
.direnv/

# Docker
.dockerignore
docs/superpowers/
152 changes: 0 additions & 152 deletions CLEANUP-SUMMARY.md

This file was deleted.

Loading
Loading