@@ -611,8 +611,8 @@ jobs:
611611 echo "🔍 Detected Python version: $PYTHON_VERSION_DETECTED"
612612
613613 # Set up Python paths dynamically
614- export PYTHONPATH="/usr/lib/python$PYTHON_VERSION_DETECTED/dist-packages:/usr/local/lib/python$PYTHON_VERSION_DETECTED/dist-packages:$PYTHONPATH"
615- export PYTHONNOUSERSITE=1
614+ export PYTHONPATH="/usr/lib/python$PYTHON_VERSION_DETECTED/dist-packages:/usr/local/lib/python$PYTHON_VERSION_DETECTED/dist-packages:$HOME/.local/lib/python$PYTHON_VERSION_DETECTED/site-packages:$ PYTHONPATH"
615+ export PYTHONNOUSERSITE=0
616616 export PYTHONUNBUFFERED=1
617617 export PYTHON_CMD="$PYTHON_CMD"
618618 export PIP_CMD="$PIP_CMD"
@@ -668,17 +668,33 @@ jobs:
668668 # Try apt installation first
669669 sudo DEBIAN_FRONTEND=noninteractive apt-get install -y julia || echo "⚠️ Julia apt installation failed, trying snap method"
670670
671- # Alternative: Install Julia via snap
672- if ! command -v julia &> /dev/null; then
671+ # Check if Julia was installed via apt
672+ if command -v julia &> /dev/null; then
673+ echo "✅ Julia installation completed via apt package"
674+ else
675+ # Alternative: Install Julia via snap
673676 echo "🔧 Installing Julia via snap..."
674- sudo snap install julia --classic || echo "⚠️ Julia snap installation failed"
675- if command -v julia &> /dev/null; then
676- echo "✅ Julia installation completed via snap"
677+ if command -v snap &> /dev/null; then
678+ sudo snap install julia --classic
679+ if command -v julia &> /dev/null; then
680+ echo "✅ Julia installation completed via snap"
681+ else
682+ echo "⚠️ Julia snap installation failed"
683+ fi
677684 else
678- echo "⚠️ Julia installation failed via all methods "
685+ echo "⚠️ snap not available, Julia installation failed "
679686 fi
680687 fi
681688
689+ # Verify Julia installation
690+ echo "🔍 Verifying Julia installation..."
691+ if command -v julia &> /dev/null; then
692+ julia --version || echo "⚠️ Julia version check failed"
693+ echo "✅ Julia is available and working"
694+ else
695+ echo "❌ Julia installation failed - tool not found"
696+ fi
697+
682698 # Medium Priority Tools (Important for Advanced Features)
683699 echo "📦 Installing Medium Priority Chiplet Tools..."
684700
@@ -711,6 +727,7 @@ jobs:
711727 libxcb-shape0-dev \
712728 libxcb-xfixes0-dev \
713729 libeigen3-dev \
730+ libcudd-dev \
714731 || echo "⚠️ Some build dependencies failed"
715732
716733 # 5. OpenTimer (High-performance static timing analysis)
@@ -729,36 +746,45 @@ jobs:
729746
730747 # 6. OpenSTA (Open-source static timing analyzer)
731748 echo "🔧 Installing OpenSTA for static timing analysis..."
732- # Install OpenSTA from Ubuntu package
733- sudo DEBIAN_FRONTEND=noninteractive apt-get install -y opensta || echo "⚠️ OpenSTA apt installation failed "
749+ # Try to install OpenSTA from Ubuntu package (may not be available in all versions)
750+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y opensta 2>/dev/null || echo "⚠️ OpenSTA package not available in this Ubuntu version "
734751
735752 # Verify installation
736753 if command -v sta &> /dev/null; then
737754 echo "✅ OpenSTA installation completed via apt package"
738755 else
739- echo "⚠️ OpenSTA installation failed via apt, trying manual build..."
756+ echo "⚠️ OpenSTA not available via apt, trying manual build..."
740757 # Fallback to manual build if apt fails
741758 cd /tmp
742759 git clone https://github.com/The-OpenROAD-Project/OpenSTA.git || echo "⚠️ OpenSTA clone failed"
743760 if [ -d "OpenSTA" ]; then
744761 cd OpenSTA
745762 mkdir build && cd build
746- # Set Eigen3 path explicitly
763+ # Set Eigen3 path explicitly and disable CUDD if not available
747764 export EIGEN3_INCLUDE_DIR=/usr/include/eigen3
748- cmake .. -DEIGEN3_INCLUDE_DIR=$EIGEN3_INCLUDE_DIR || echo "⚠️ OpenSTA cmake failed"
765+ cmake .. -DEIGEN3_INCLUDE_DIR=$EIGEN3_INCLUDE_DIR -DCUDD=OFF || echo "⚠️ OpenSTA cmake failed"
749766 make -j$(nproc) || echo "⚠️ OpenSTA build failed"
750767 sudo make install || echo "⚠️ OpenSTA install failed"
751768 echo "✅ OpenSTA installation completed via manual build"
752769 fi
753770 cd $GITHUB_WORKSPACE
754771 fi
755772
773+ # Verify OpenSTA installation
774+ echo "🔍 Verifying OpenSTA installation..."
775+ if command -v sta &> /dev/null; then
776+ sta --version 2>/dev/null || echo "⚠️ OpenSTA version check failed"
777+ echo "✅ OpenSTA is available and working"
778+ else
779+ echo "❌ OpenSTA installation failed - tool not found"
780+ fi
781+
756782 # Low Priority Tools (Nice to Have)
757783 echo "📦 Installing Low Priority Chiplet Tools..."
758784
759785 # 7. Additional Python packages for chiplet analysis
760786 echo "🔧 Installing Python chiplet analysis packages..."
761- $PIP_CMD install \
787+ $PIP_CMD install --user \
762788 pyyaml \
763789 networkx \
764790 matplotlib \
0 commit comments