Skip to content

Commit e5ae6b9

Browse files
Upgrade CI to HDF5 2.0.0 and AVRO 1.12.1
1 parent 9da4008 commit e5ae6b9

1 file changed

Lines changed: 54 additions & 71 deletions

File tree

.github/workflows/github-actions.yml

Lines changed: 54 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,16 @@ jobs:
77
- uses: actions/checkout@v5
88
- name: Boost install
99
run: |
10-
(New-Object System.Net.WebClient).DownloadFile("https://archives.boost.io/release/1.88.0/binaries/boost_1_88_0-msvc-14.2-64.exe", "${{ runner.temp }}\boost.exe")
10+
(New-Object System.Net.WebClient).DownloadFile("https://archives.boost.io/release/1.90.0/binaries/boost_1_90_0-msvc-14.2-64.exe", "${{ runner.temp }}\boost.exe")
1111
Start-Process -Wait -FilePath "${{ runner.temp }}\boost.exe" "/SILENT","/SP-","/SUPPRESSMSGBOXES","/DIR=${{ runner.temp }}\boost-install"
1212
- name: AVRO install
1313
run: |
14-
(New-Object System.Net.WebClient).DownloadFile("https://archive.apache.org/dist/avro/avro-1.11.3/cpp/avro-cpp-1.11.3.tar.gz", "${{ runner.temp }}\avro-cpp-1.11.3.tar.gz")
15-
7z x ${{ runner.temp }}\avro-cpp-1.11.3.tar.gz -o${{ runner.temp }}
16-
7z x ${{ runner.temp }}\avro-cpp-1.11.3.tar -o${{ runner.temp }}
17-
((Get-Content -path ${{ runner.temp }}/avro-cpp-1.11.3/CMakeLists.txt -Raw) -replace 'install \(TARGETS avrocpp avrocpp_s','install (TARGETS avrocpp_s') | Set-Content -Path ${{ runner.temp }}/avro-cpp-1.11.3/CMakeLists.txt
18-
((Get-Content -path ${{ runner.temp }}/avro-cpp-1.11.3/CMakeLists.txt -Raw) -replace 'install \(TARGETS avrogencpp RUNTIME DESTINATION bin\)','') | Set-Content -Path ${{ runner.temp }}/avro-cpp-1.11.3/CMakeLists.txt
1914
cd ${{ runner.temp }}
20-
mkdir avro-cpp-build
21-
cd avro-cpp-build
22-
cmake -G"Visual Studio 17 2022" -A x64 -T host=x64 -Wno-dev -Wno-deprecated -DBoost_INCLUDE_DIR=${{ runner.temp }}\boost-install -DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/avro-cpp-install ${{ runner.temp }}/avro-cpp-1.11.3
23-
cmake --build . --config Release --target avrocpp_s -j2
15+
git clone -b release-1.12.1 https://github.com/apache/avro.git avro
16+
mkdir avro-build
17+
cd avro-build
18+
cmake -G"Visual Studio 17 2022" -A x64 -T host=x64 -DCMAKE_BUILD_TYPE=Release -DAVRO_BUILD_EXECUTABLES=FALSE -DAVRO_BUILD_TESTS=FALSE -DAVRO_BUILD_SHARED=FALSE -DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/avro-cpp-install ${{ runner.temp }}/avro/lang/c++
19+
cmake --build . -j2
2420
cmake --install .
2521
- name: CMake build and install
2622
run: |
@@ -35,20 +31,16 @@ jobs:
3531
- uses: actions/checkout@v5
3632
- name: Boost install
3733
run: |
38-
(New-Object System.Net.WebClient).DownloadFile("https://archives.boost.io/release/1.88.0/binaries/boost_1_88_0-msvc-14.2-64.exe", "${{ runner.temp }}\boost.exe")
34+
(New-Object System.Net.WebClient).DownloadFile("https://archives.boost.io/release/1.90.0/binaries/boost_1_90_0-msvc-14.2-64.exe", "${{ runner.temp }}\boost.exe")
3935
Start-Process -Wait -FilePath "${{ runner.temp }}\boost.exe" "/SILENT","/SP-","/SUPPRESSMSGBOXES","/DIR=${{ runner.temp }}\boost-install"
4036
- name: AVRO install
4137
run: |
42-
(New-Object System.Net.WebClient).DownloadFile("https://archive.apache.org/dist/avro/avro-1.11.3/cpp/avro-cpp-1.11.3.tar.gz", "${{ runner.temp }}\avro-cpp-1.11.3.tar.gz")
43-
7z x ${{ runner.temp }}\avro-cpp-1.11.3.tar.gz -o${{ runner.temp }}
44-
7z x ${{ runner.temp }}\avro-cpp-1.11.3.tar -o${{ runner.temp }}
45-
((Get-Content -path ${{ runner.temp }}/avro-cpp-1.11.3/CMakeLists.txt -Raw) -replace 'install \(TARGETS avrocpp avrocpp_s','install (TARGETS avrocpp_s') | Set-Content -Path ${{ runner.temp }}/avro-cpp-1.11.3/CMakeLists.txt
46-
((Get-Content -path ${{ runner.temp }}/avro-cpp-1.11.3/CMakeLists.txt -Raw) -replace 'install \(TARGETS avrogencpp RUNTIME DESTINATION bin\)','') | Set-Content -Path ${{ runner.temp }}/avro-cpp-1.11.3/CMakeLists.txt
4738
cd ${{ runner.temp }}
48-
mkdir avro-cpp-build
49-
cd avro-cpp-build
50-
cmake -G"Visual Studio 17 2022" -A x64 -T host=x64 -Wno-dev -Wno-deprecated -DBoost_INCLUDE_DIR=${{ runner.temp }}\boost-install -DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/avro-cpp-install ${{ runner.temp }}/avro-cpp-1.11.3
51-
cmake --build . --config Release --target avrocpp_s -j2
39+
git clone -b release-1.12.1 https://github.com/apache/avro.git avro
40+
mkdir avro-build
41+
cd avro-build
42+
cmake -G"Visual Studio 17 2022" -A x64 -T host=x64 -DCMAKE_BUILD_TYPE=Release -DAVRO_BUILD_EXECUTABLES=FALSE -DAVRO_BUILD_TESTS=FALSE -DAVRO_BUILD_SHARED=FALSE -DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/avro-cpp-install ${{ runner.temp }}/avro/lang/c++
43+
cmake --build . -j2
5244
cmake --install .
5345
- name: FESAPI install
5446
run: |
@@ -71,15 +63,12 @@ jobs:
7163
sudo apt install -y libboost-all-dev
7264
- name: AVRO INSTALL
7365
run: |
74-
curl https://archive.apache.org/dist/avro/avro-1.11.3/cpp/avro-cpp-1.11.3.tar.gz -o ${{ runner.temp }}/avro-cpp-1.11.3.tar.gz
7566
cd ${{ runner.temp }}
76-
tar xzf avro-cpp-1.11.3.tar.gz
77-
sed -i 's/install (TARGETS avrocpp avrocpp_s/install (TARGETS avrocpp_s/' avro-cpp-1.11.3/CMakeLists.txt
78-
sed -i 's/install (TARGETS avrogencpp RUNTIME DESTINATION bin)//' avro-cpp-1.11.3/CMakeLists.txt
79-
mkdir avro-cpp-build
80-
cd avro-cpp-build
81-
cmake -Wno-dev -Wno-deprecated -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/avro-cpp-install ${{ runner.temp }}/avro-cpp-1.11.3
82-
cmake --build . -j2 --target avrocpp_s
67+
git clone -b release-1.12.1 https://github.com/apache/avro.git avro
68+
mkdir avro-build
69+
cd avro-build
70+
cmake -Wno-dev -Wno-deprecated -DCMAKE_BUILD_TYPE=Release -DAVRO_BUILD_EXECUTABLES=FALSE -DAVRO_BUILD_TESTS=FALSE -DAVRO_BUILD_SHARED=FALSE -DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/avro-cpp-install ${{ runner.temp }}/avro/lang/c++
71+
cmake --build . -j2
8372
cmake --install .
8473
- name: CMake build and install
8574
run: |
@@ -102,15 +91,12 @@ jobs:
10291
sudo apt install -y libboost-all-dev
10392
- name: AVRO INSTALL
10493
run: |
105-
curl https://archive.apache.org/dist/avro/avro-1.11.3/cpp/avro-cpp-1.11.3.tar.gz -o ${{ runner.temp }}/avro-cpp-1.11.3.tar.gz
10694
cd ${{ runner.temp }}
107-
tar xzf avro-cpp-1.11.3.tar.gz
108-
sed -i 's/install (TARGETS avrocpp avrocpp_s/install (TARGETS avrocpp_s/' avro-cpp-1.11.3/CMakeLists.txt
109-
sed -i 's/install (TARGETS avrogencpp RUNTIME DESTINATION bin)//' avro-cpp-1.11.3/CMakeLists.txt
110-
mkdir avro-cpp-build
111-
cd avro-cpp-build
112-
cmake -Wno-dev -Wno-deprecated -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/avro-cpp-install ${{ runner.temp }}/avro-cpp-1.11.3
113-
cmake --build . -j2 --target avrocpp_s
95+
git clone -b release-1.12.1 https://github.com/apache/avro.git avro
96+
mkdir avro-build
97+
cd avro-build
98+
cmake -Wno-dev -Wno-deprecated -DCMAKE_BUILD_TYPE=Release -DAVRO_BUILD_EXECUTABLES=FALSE -DAVRO_BUILD_TESTS=FALSE -DAVRO_BUILD_SHARED=FALSE -DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/avro-cpp-install ${{ runner.temp }}/avro/lang/c++
99+
cmake --build . -j2
114100
cmake --install .
115101
- name: CMake build and install
116102
run: |
@@ -160,15 +146,12 @@ jobs:
160146
find . -name "*.h" -exec cp --parents \{\} ${{ runner.temp }}/fesapi-install/include/fesapi/ \;
161147
- name: AVRO INSTALL
162148
run: |
163-
curl https://archive.apache.org/dist/avro/avro-1.11.3/cpp/avro-cpp-1.11.3.tar.gz -o ${{ runner.temp }}/avro-cpp-1.11.3.tar.gz
164149
cd ${{ runner.temp }}
165-
tar xzf avro-cpp-1.11.3.tar.gz
166-
sed -i 's/install (TARGETS avrocpp avrocpp_s/install (TARGETS avrocpp_s/' avro-cpp-1.11.3/CMakeLists.txt
167-
sed -i 's/install (TARGETS avrogencpp RUNTIME DESTINATION bin)//' avro-cpp-1.11.3/CMakeLists.txt
168-
mkdir avro-cpp-build
169-
cd avro-cpp-build
170-
cmake -Wno-dev -Wno-deprecated -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/avro-cpp-install -DCMAKE_C_COMPILER=${{ matrix.cc }} -DCMAKE_CXX_COMPILER=${{ matrix.cxx }} ${{ runner.temp }}/avro-cpp-1.11.3
171-
cmake --build . -j2 --target avrocpp_s
150+
git clone -b release-1.12.1 https://github.com/apache/avro.git avro
151+
mkdir avro-build
152+
cd avro-build
153+
cmake -Wno-dev -Wno-deprecated -DCMAKE_BUILD_TYPE=Release -DAVRO_BUILD_EXECUTABLES=FALSE -DAVRO_BUILD_TESTS=FALSE -DAVRO_BUILD_SHARED=FALSE -DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/avro-cpp-install /avro/lang/c++
154+
cmake --build . -j2
172155
cmake --install .
173156
- name: CMake build and install
174157
run: |
@@ -230,8 +213,8 @@ jobs:
230213
# https://github.com/pypa/cibuildwheel/issues/1139
231214
run: touch python/setup.py
232215
- name: Build wheels
233-
# Above cibuildwheel@v2.22.0, GNU 14 is most likely used instead of GNU 12 or 13 which makes AVRO 1.11.3 not compiling
234-
uses: pypa/cibuildwheel@v2.22.0
216+
uses: pypa/cibuildwheel@v3.2.1
217+
# RedHat nor Debian maintain security patches for hdf5. We consequently build the latest HDF5 version.
235218
env:
236219
CIBW_BUILD: cp38-manylinux_* cp39-manylinux_* cp310-manylinux_* cp311-manylinux_* cp312-manylinux_* cp313-manylinux_*
237220
CIBW_ARCHS: auto64
@@ -241,30 +224,35 @@ jobs:
241224
yum search epel-release &&
242225
yum info epel-release &&
243226
yum install -y epel-release &&
244-
yum --enablerepo=epel install -y minizip1.2-devel hdf5-devel cmake3 &&
227+
yum --enablerepo=epel install -y minizip1.2-devel cmake3 &&
228+
cd / &&
229+
wget --no-verbose https://support.hdfgroup.org/releases/hdf5/v2_0/v2_0_0/downloads/hdf5-2.0.0.tar.gz &&
230+
tar -xzf hdf5-2.0.0.tar.gz &&
231+
mkdir hdf5-build &&
232+
cd hdf5-build &&
233+
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE:STRING=Release -DHDF5_ENABLE_ZLIB_SUPPORT:BOOL=ON -DBUILD_SHARED_LIBS:BOOL=OFF -DHDF5_BUILD_FORTRAN:BOOL=OFF -DHDF5_BUILD_JAVA:BOOL=OFF -DHDF5_ENABLE_PARALLEL:BOOL=OFF -DHDF5_BUILD_CPP_LIB:BOOL=OFF -DHDF5_BUILD_HL_LIB:BOOL=OFF -DHDF5_BUILD_EXAMPLES:BOOL=OFF -DHDF5_BUILD_GENERATORS:BOOL=OFF -DHDF5_BUILD_TOOLS:BOOL=OFF -DHDF5_BUILD_UTILS:BOOL=OFF -DBUILD_TESTING:BOOL=OFF -DCMAKE_INSTALL_PREFIX:STRING=/hdf5-install /hdf5-2.0.0 &&
234+
cmake --build . -j2 &&
235+
cmake3 --install . &&
245236
cd / &&
246237
wget https://github.com/F2I-Consulting/fesapi/archive/refs/tags/v2.14.0.0.zip &&
247238
unzip v2.14.0.0.zip &&
248239
mkdir fesapi-build &&
249240
cd fesapi-build &&
250-
cmake3 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:STRING=/fesapi-install /fesapi-2.14.0.0 &&
251-
cmake3 --build . -j2 --config Release &&
241+
cmake3 -DCMAKE_BUILD_TYPE=Release -DHDF5_ROOT=/hdf5-install -DHDF5_USE_STATIC_LIBRARIES=TRUE -DCMAKE_INSTALL_PREFIX:STRING=/fesapi-install /fesapi-2.14.0.0 &&
242+
cmake3 --build . -j2 &&
252243
cmake3 --install . &&
253244
cd / &&
254-
wget https://archive.apache.org/dist/avro/avro-1.11.3/cpp/avro-cpp-1.11.3.tar.gz &&
255-
tar xf avro-cpp-1.11.3.tar.gz &&
256-
sed -i 's/install (TARGETS avrocpp avrocpp_s/install (TARGETS avrocpp_s/' avro-cpp-1.11.3/CMakeLists.txt &&
257-
sed -i 's/install (TARGETS avrogencpp RUNTIME DESTINATION bin)//' avro-cpp-1.11.3/CMakeLists.txt &&
245+
git clone -b release-1.12.1 https://github.com/apache/avro.git avro &&
258246
mkdir avro-build &&
259247
cd avro-build &&
260-
cmake3 -Wno-dev -Wno-deprecated -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=/avro-install /avro-cpp-1.11.3 &&
261-
cmake3 --build . -j2 --target avrocpp_s --config Release &&
248+
cmake3 -Wno-dev -Wno-deprecated -DCMAKE_BUILD_TYPE=Release -DAVRO_BUILD_EXECUTABLES=FALSE -DAVRO_BUILD_TESTS=FALSE -DAVRO_BUILD_SHARED=FALSE -DCMAKE_INSTALL_PREFIX=/avro-install /avro/lang/c++ &&
249+
cmake3 --build . -j2 &&
262250
cmake3 --install . &&
263251
cd / &&
264252
mkdir build &&
265253
cd build &&
266254
cmake3 -DCMAKE_BUILD_TYPE=Release -DAVRO_ROOT=/avro-install -DAVRO_USE_STATIC_LIBS=TRUE -DWITH_FESAPI=TRUE -DFESAPI_ROOT=/fesapi-install -DWITH_PYTHON_WRAPPING=TRUE -DCMAKE_INSTALL_PREFIX:STRING=/fetpapi-install {project} &&
267-
cmake3 --build . -j2 --config Release &&
255+
cmake3 --build . -j2 &&
268256
cmake3 --install .
269257
CIBW_REPAIR_WHEEL_COMMAND_LINUX: >
270258
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/fesapi-install/lib64:/fetpapi-install/lib64 &&
@@ -296,9 +284,9 @@ jobs:
296284
# Dont use brew for dependencies https://github.com/pypa/cibuildwheel/issues/1251#issuecomment-1234553537
297285
CIBW_BEFORE_ALL: >
298286
cd ${{ github.workspace }}/.. &&
299-
wget --no-verbose https://archives.boost.io/release/1.87.0/source/boost_1_87_0.tar.gz &&
300-
tar xf boost_1_87_0.tar.gz &&
301-
cd boost_1_87_0 &&
287+
wget --no-verbose https://archives.boost.io/release/1.90.0/source/boost_1_90_0.tar.gz &&
288+
tar xf boost_1_90_0.tar.gz &&
289+
cd boost_1_90_0 &&
302290
./bootstrap.sh --prefix=${{ github.workspace }}/../boost-install --with-libraries=filesystem,iostreams,program_options,regex,system &&
303291
./b2 -d0 install &&
304292
git clone https://github.com/F2I-Consulting/Minizip.git ${{ github.workspace }}/../minizip &&
@@ -308,12 +296,12 @@ jobs:
308296
cmake --build . -j2 --config Release &&
309297
cmake --install . &&
310298
cd ${{ github.workspace }}/.. &&
311-
wget --no-verbose https://github.com/HDFGroup/hdf5/releases/download/hdf5_1.14.5/hdf5-1.14.5.tar.gz &&
312-
tar xf hdf5-1.14.5.tar.gz &&
299+
wget --no-verbose https://support.hdfgroup.org/releases/hdf5/v2_0/v2_0_0/downloads/hdf5-2.0.0.tar.gz &&
300+
tar -xzf hdf5-2.0.0.tar.gz &&
313301
mkdir hdf5-build &&
314302
cd hdf5-build &&
315-
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS:BOOL=OFF -DBUILD_TESTING:BOOL=OFF -DHDF5_BUILD_TOOLS:BOOL=OFF -DHDF5_BUILD_EXAMPLES:BOOL=OFF -DHDF5_BUILD_CPP_LIB:BOOL=OFF -DHDF5_BUILD_HL_LIB:BOOL=OFF -DCMAKE_INSTALL_PREFIX:STRING=${{ github.workspace }}/../hdf5-install ${{ github.workspace }}/../hdf5-1.14.5 &&
316-
cmake --build . -j2 --config Release &&
303+
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE:STRING=Release -DHDF5_ENABLE_ZLIB_SUPPORT:BOOL=ON -DBUILD_SHARED_LIBS:BOOL=OFF -DHDF5_BUILD_FORTRAN:BOOL=OFF -DHDF5_BUILD_JAVA:BOOL=OFF -DHDF5_ENABLE_PARALLEL:BOOL=OFF -DHDF5_BUILD_CPP_LIB:BOOL=OFF -DHDF5_BUILD_HL_LIB:BOOL=OFF -DHDF5_BUILD_EXAMPLES:BOOL=OFF -DHDF5_BUILD_GENERATORS:BOOL=OFF -DHDF5_BUILD_TOOLS:BOOL=OFF -DHDF5_BUILD_UTILS:BOOL=OFF -DBUILD_TESTING:BOOL=OFF -DCMAKE_INSTALL_PREFIX:STRING=${{ github.workspace }}/../hdf5-install ${{ github.workspace }}/../hdf5-2.0.0 &&
304+
cmake --build . -j2 &&
317305
cmake --install . &&
318306
cd ${{ github.workspace }}/.. &&
319307
wget --no-verbose https://github.com/F2I-Consulting/fesapi/archive/refs/tags/v2.14.0.0.zip &&
@@ -331,16 +319,11 @@ jobs:
331319
make &&
332320
make install &&
333321
cd ${{ github.workspace }}/.. &&
334-
wget --no-verbose https://archive.apache.org/dist/avro/avro-1.11.3/cpp/avro-cpp-1.11.3.tar.gz &&
335-
tar xf avro-cpp-1.11.3.tar.gz &&
336-
sed -i '' 's/cmake_minimum_required (VERSION 3.1)/cmake_minimum_required (VERSION 3.5)/' avro-cpp-1.11.3/CMakeLists.txt &&
337-
sed -i '' 's/if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.0)/if (APPLE)/' avro-cpp-1.11.3/CMakeLists.txt &&
338-
sed -i '' 's/install (TARGETS avrocpp avrocpp_s/install (TARGETS avrocpp_s/' avro-cpp-1.11.3/CMakeLists.txt &&
339-
sed -i '' 's/install (TARGETS avrogencpp RUNTIME DESTINATION bin)//' avro-cpp-1.11.3/CMakeLists.txt &&
322+
git clone -b release-1.12.1 https://github.com/apache/avro.git avro &&
340323
mkdir avro-build &&
341324
cd avro-build &&
342-
cmake -Wno-dev -Wno-deprecated -DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_STANDARD_REQUIRED=ON -DCMAKE_CXX_EXTENSIONS=OFF -DBOOST_ROOT=${{ github.workspace }}/../boost-install -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/../avro-install ${{ github.workspace }}/../avro-cpp-1.11.3 &&
343-
cmake --build . -j2 --target avrocpp_s --config Release &&
325+
cmake -Wno-dev -Wno-deprecated -DCMAKE_BUILD_TYPE=Release -DAVRO_BUILD_EXECUTABLES=FALSE -DAVRO_BUILD_TESTS=FALSE -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/../avro-install ${{ github.workspace }}/../avro/lang/c++ &&
326+
cmake --build . -j2 &&
344327
cmake --install . &&
345328
brew install swig &&
346329
mkdir ${{ github.workspace }}/../build &&

0 commit comments

Comments
 (0)