Skip to content

Commit 936cb34

Browse files
authored
ci: unbreak icc/icx CI (#4958)
A few days ago, the icc and icx CI tests started failing, saying they were out of disk space while installing dependencies (specifically, the intel compilers themselves). Now, the VFX Platform 2023 asf docker image I'm using hasn't changed, and neither has the years-old Intel rpms with the compilers. So maybe the runners themselves just changed again, in a way that adds some pre-installs and leaving us not quite enough disk space for everything else we need? Asking for a few less things to get installed seems to free up just enough space. And for the icx one, I also swtiched to the 2025 container, which let me use a slightly newer icx version. Also: Don't try to install giflib needlessly, which speeds up the setup time. And remove some dead code in my dependency setup script. Signed-off-by: Larry Gritz <[email protected]>
1 parent 8887077 commit 936cb34

File tree

2 files changed

+30
-35
lines changed

2 files changed

+30
-35
lines changed

.github/workflows/ci.yml

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -251,30 +251,29 @@ jobs:
251251
fmt_ver: 7.1.3
252252
# icc MUST use this older FMT version
253253
pybind11_ver: v2.9.0
254-
setenvs: export USE_ICC=1 USE_OPENVDB=0
254+
setenvs: export USE_ICC=1 USE_OPENVDB=0 USE_OPENCV=0
255255
OIIO_EXTRA_CPP_ARGS="-fp-model=precise"
256256
FREETYPE_VERSION=VER-2-13-0
257257
DISABLE_libuhdr=1
258258
# For icc, use fp-model precise to eliminate needless LSB errors
259259
# that make test results differ from other platforms.
260260
optional_deps_append: "LibRaw;Ptex;Qt6"
261-
- desc: VFX2023 icx/C++17 py3.10 exr3.1 ocio2.3 qt5.15
261+
- desc: VFX2025 icx/C++17 py3.11 exr3.3 ocio2.4 qt5.15
262262
nametag: linux-vfx2023.icx
263263
runner: ubuntu-latest
264-
container: aswf/ci-osl:2023
264+
container: aswf/ci-oiio:2025
265265
cc_compiler: icx
266266
cxx_compiler: icpx
267-
opencolorio_ver: v2.3.0
268-
python_ver: "3.10"
269-
pybind11_ver: v2.10.0
267+
fmt_ver: 11.2.0
268+
python_ver: "3.11"
269+
pybind11_ver: v2.13.6
270270
simd: "avx2,f16c"
271271
benchmark: 1
272-
setenvs: export USE_OPENVDB=0
272+
setenvs: export USE_OPENVDB=0 USE_OPENCV=0
273273
UHDR_CMAKE_C_COMPILER=gcc
274274
UHDR_CMAKE_CXX_COMPILER=g++
275275
# Building libuhdr with icx results in test failures
276-
# so we force using gcc/g++.
277-
optional_deps_append: "LibRaw;Ptex;Qt6"
276+
optional_deps_append: "LibRaw;Ptex;openjph;Qt6"
278277
- desc: VFX2024 gcc11/C++17 py3.11 exr3.2 ocio2.3
279278
nametag: linux-vfx2024
280279
runner: ubuntu-latest

src/build-scripts/gh-installdeps.bash

Lines changed: 22 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88

99
set -ex
10+
df -h
1011

1112

1213
#
@@ -17,8 +18,22 @@ if [[ "$ASWF_ORG" != "" ]] ; then
1718

1819
#ls /etc/yum.repos.d
1920

21+
# This will show how much space is taken by each installed package, sorted
22+
# by size in KB.
23+
# rpm -qa --queryformat '%10{size} - %-25{name} \t %{version}\n' | sort -n
24+
25+
# I would like this to free space by removing packages we don't need.
26+
# BUT IT DOESN'T, because uninstalling a package just ends is visibility
27+
# to the runtime, it doesn't remove it from the static container image
28+
# that's taking up the disk space. So this is pointless. But leaving it
29+
# here to remind myself not to waste time trying it again.
30+
# time sudo yum remove -y nsight-compute-2022.3.0 libcublas-devel-11-8 libcublas-11-8 libcusparse-devel-11-8 libnpp-devel-11-8 libnpp-11-8 libcurand-devel-11-8 libcurand-11-8 || true
31+
# time sudo yum remove -y nsight-compute-2024.3.1 libcublas-devel-12-6 libcublas-12-6 libcusparse-devel-12-6 libnpp-devel-12-6 libnpp-12-6 libcurand-devel-12-6 libcurand-12-6 || true
32+
2033
# time sudo dnf upgrade --refresh || true
21-
time sudo dnf install --nogpgcheck https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-$(rpm -E %rhel).noarch.rpm -y || true
34+
if [[ "${DO_RPMFUSION_REPO:-0}" != "0" ]] ; then
35+
time sudo dnf install --nogpgcheck https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-$(rpm -E %rhel).noarch.rpm -y || true
36+
fi
2237

2338
if [[ "$ASWF_VFXPLATFORM_VERSION" == "2022" ]] ; then
2439
# CentOS 7 based containers need the now-nonexistent centos repo to be
@@ -27,7 +42,7 @@ if [[ "$ASWF_ORG" != "" ]] ; then
2742
sed -i 's,^mirrorlist=,#,; s,^#baseurl=http://mirror\.centos\.org/centos/$releasever,baseurl=https://vault.centos.org/7.9.2009,' /etc/yum.repos.d/CentOS-Base.repo
2843
fi
2944

30-
time time sudo yum install -y giflib giflib-devel || true
45+
# time time sudo yum install -y giflib giflib-devel || true
3146
if [[ "${USE_OPENCV}" != "0" ]] ; then
3247
time sudo yum install -y opencv opencv-devel || true
3348
fi
@@ -47,25 +62,6 @@ if [[ "$ASWF_ORG" != "" ]] ; then
4762
time pip3 install ${PIP_INSTALLS} || true
4863
fi
4964

50-
if [[ "${CONAN_LLVM_VERSION}" != "" ]] ; then
51-
mkdir conan
52-
pushd conan
53-
# Simple way to conan install just one package:
54-
# conan install clang/${CONAN_LLVM_VERSION}@aswftesting/ci_common1 -g deploy -g virtualenv
55-
# But the below method can accommodate multiple requirements:
56-
echo "[imports]" >> conanfile.txt
57-
echo "., * -> ." >> conanfile.txt
58-
echo "[requires]" >> conanfile.txt
59-
echo "clang/${CONAN_LLVM_VERSION}@aswftesting/ci_common1" >> conanfile.txt
60-
time conan install .
61-
echo "--ls--"
62-
ls -R .
63-
export PATH=$PWD/bin:$PATH
64-
export LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH
65-
export LLVM_ROOT=$PWD
66-
popd
67-
fi
68-
6965
if [[ "$CXX" == "icpc" || "$CC" == "icc" || "$USE_ICC" != "" ]] ; then
7066
# Lock down icc to 2022.1 because newer versions hosted on the Intel
7167
# repo require a glibc too new for the ASWF CentOS7-based containers
@@ -74,12 +70,10 @@ if [[ "$ASWF_ORG" != "" ]] ; then
7470
sudo /usr/bin/yum install -y intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-2022.1.0.x86_64
7571
set +e; source /opt/intel/oneapi/setvars.sh --config oneapi_2022.1.0.cfg; set -e
7672
elif [[ "$CXX" == "icpc" || "$CC" == "icc" || "$USE_ICC" != "" || "$CXX" == "icpx" || "$CC" == "icx" || "$USE_ICX" != "" ]] ; then
77-
# Lock down icx to 2023.1 because newer versions hosted on the Intel
78-
# repo require a libstd++ too new for the ASWF containers we run CI on
79-
# because their default install of gcc 9 based toolchain.
8073
sudo cp src/build-scripts/oneAPI.repo /etc/yum.repos.d
81-
sudo yum install -y intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-2023.1.0.x86_64
82-
# sudo yum install -y intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic
74+
sudo yum install -y intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic
75+
# If we needed to lock down to a particular version, we could:
76+
# sudo yum install -y intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-2023.1.0.x86_64
8377
set +e; source /opt/intel/oneapi/setvars.sh; set -e
8478
echo "Verifying installation of Intel(r) oneAPI DPC++/C++ Compiler:"
8579
icpx --version
@@ -225,5 +219,7 @@ if [[ "$USE_ICC" != "" ]] ; then
225219
export CC=icc
226220
fi
227221

222+
df -h
223+
228224
# Save the env for use by other stages
229225
src/build-scripts/save-env.bash

0 commit comments

Comments
 (0)