@@ -811,36 +811,86 @@ jobs:
811811 - 1433:1433
812812 steps :
813813 - uses : actions/checkout@v4
814- - run : sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev alien libaio1 gnupg2 curl odbcinst1debian2 libodbc1 odbcinst # libmysqlclient-dev mysql-client odbc-postgresql
815- # - name: Setup MySQL ODBC connector
816- # run: |
817- # wget https://dev.mysql.com/get/Downloads/Connector-ODBC/8.2/mysql-connector-odbc_8.2.0-1ubuntu22.04_amd64.deb
818- # wget https://dev.mysql.com/get/Downloads/MySQL-8.2/mysql-community-client-plugins_8.2.0-1ubuntu22.04_amd64.deb
819- # sudo dpkg -i mysql-community-client-plugins_8.2.0-1ubuntu22.04_amd64.deb mysql-connector-odbc_8.2.0-1ubuntu22.04_amd64.deb
820-
821- - name : Free disk space
814+
815+ - name : Pre-check runner disk & cleanup
822816 run : |
823- sudo df
824- sudo apt autopurge
825- sudo apt clean
826- sudo rm -rf /usr/share/dotnet
827- sudo npm cache clean --force
828- sudo docker system prune -a --force
829- sudo df
830- - name : Setup Oracle ODBC connector
817+ echo "Disk usage before cleanup:"
818+ df -h .
819+ free -h
820+ sudo rm -f /var/lib/dpkg/lock-frontend /var/cache/apt/archives/lock || true
821+ sudo apt-get -y autoremove --purge || true
822+ sudo apt-get -y clean || true
823+ sudo rm -rf /usr/share/dotnet || true
824+ sudo npm cache clean --force || true
825+ sudo docker system prune -a --force || true
826+ echo "Disk usage after cleanup:"
827+ df -h .
828+
829+ - name : Install basic system dependencies (robust)
830+ env :
831+ DEBIAN_FRONTEND : noninteractive
831832 run : |
833+ set -euxo pipefail
834+ sudo rm -f /var/lib/dpkg/lock-frontend /var/cache/apt/archives/lock || true
835+ sudo apt-get update -o Acquire::Retries=3
836+ for i in 1 2 3; do
837+ sudo apt-get install -y --no-install-recommends \
838+ -o Dpkg::Options::="--force-confdef" \
839+ -o Dpkg::Options::="--force-confold" \
840+ libssl-dev unixodbc-dev alien libaio1 gnupg2 curl \
841+ odbcinst1debian2 libodbc1 odbcinst || {
842+ echo "apt-get install attempt $i failed; retrying in 10s..."
843+ sleep 10
844+ continue
845+ }
846+ break
847+ done
848+
849+ - name : Setup Oracle ODBC connector (.deb) and fix deps
850+ env :
851+ DEBIAN_FRONTEND : noninteractive
852+ run : |
853+ set -euxo pipefail
832854 wget https://www.devart.com/odbc/oracle/devartodbcoracle_amd64.deb
833- sudo dpkg -i devartodbcoracle_amd64.deb
834- - run : ls -l /etc/apt/sources.list.d/
835- - name : Setup SQL Server ODBC connector
855+ sudo dpkg -i devartodbcoracle_amd64.deb || true
856+ sudo apt-get update -o Acquire::Retries=3
857+ sudo apt-get install -y -f
858+ dpkg -l | grep -Ei 'devart|odbc|oracle' || true
859+
860+ - name : Setup Microsoft packages & msodbcsql18
861+ env :
862+ DEBIAN_FRONTEND : noninteractive
836863 run : |
864+ set -euxo pipefail
837865 curl -sSL -O https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb
838866 sudo dpkg -i packages-microsoft-prod.deb
839867 rm packages-microsoft-prod.deb
840- sudo apt-get update
868+ sudo apt-get update -o Acquire::Retries=3
841869 sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18
842- ls /opt/microsoft/msodbcsql18/include
843- - run : ls -l /etc/apt/sources.list.d/
870+
871+ - name : Capture apt/dpkg/system diagnostics on failure
872+ if : failure()
873+ run : |
874+ set -euxo pipefail
875+ echo "===== APT / DPKG DIAGNOSTICS ====="
876+ sudo tail -n +1 /var/log/apt/term.log || true
877+ sudo tail -n +1 /var/log/apt/history.log || true
878+ sudo tail -n +1 /var/log/dpkg.log || true
879+ df -h || true
880+ free -h || true
881+ uname -a || true
882+ dmesg --level=err,warn | tail -n 200 || true
883+ mkdir -p $GITHUB_WORKSPACE/ci-apt-logs
884+ sudo cp /var/log/apt/* $GITHUB_WORKSPACE/ci-apt-logs/ 2>/dev/null || true
885+ sudo cp /var/log/dpkg.log $GITHUB_WORKSPACE/ci-apt-logs/ 2>/dev/null || true
886+ ls -l $GITHUB_WORKSPACE/ci-apt-logs || true
887+
888+ - name : Upload apt/dpkg logs
889+ if : always()
890+ uses : actions/upload-artifact@v4
891+ with :
892+ name : apt-dpkg-logs
893+ path : ci-apt-logs
844894 - run : >-
845895 cmake -S. -Bcmake-build -GNinja -DPOCO_MINIMAL_BUILD=ON -DENABLE_DATA_ODBC=ON -DENABLE_TESTS=ON
846896 - run : cmake --build cmake-build --target all --parallel 4
0 commit comments