Skip to content

Commit 2ebeaaa

Browse files
authored
CI: Update images, versions (#1214)
* CI: Update images, versions * CI: Correct version numbers * CI: Enable all tests again * CI: Correct build matrix * Correct definition of off_t * CI: Check simplified h5p_get_external * Undo debug statements
1 parent f841a9e commit 2ebeaaa

File tree

3 files changed

+80
-78
lines changed

3 files changed

+80
-78
lines changed

.github/workflows/CI.yml

Lines changed: 78 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -9,40 +9,42 @@ on:
99
pull_request:
1010

1111
jobs:
12-
HDF5-system-libs:
13-
name: julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} (system libhdf5 + mpich)
14-
runs-on: ${{ matrix.os }}
15-
timeout-minutes: 20
16-
strategy:
17-
matrix:
18-
version:
19-
- '1.9'
20-
- '1.10'
21-
- '1'
22-
os:
23-
- ubuntu-20.04 # required for libhdf5 v1.10.4 support
24-
arch:
25-
- x64
26-
steps:
27-
- name: Install libraries
28-
run: |
29-
sudo apt-get update
30-
sudo apt-get install mpich libhdf5-mpich-dev
31-
echo "JULIA_HDF5_PATH=/usr/lib/x86_64-linux-gnu/hdf5/mpich/" >> $GITHUB_ENV
32-
- uses: actions/checkout@v4
33-
- uses: julia-actions/cache@v2
34-
- uses: julia-actions/setup-julia@latest
35-
with:
36-
version: ${{ matrix.version }}
37-
arch: ${{ matrix.arch }}
38-
- uses: julia-actions/julia-buildpkg@latest
39-
- name: Configure MPI.jl
40-
shell: julia --color=yes {0}
41-
run: |
42-
@show pwd()
43-
include(joinpath(pwd(), "test", "configure_packages.jl"))
44-
- uses: julia-actions/julia-runtest@latest
45-
12+
# This test is disabled because the Github runner image
13+
# `ubuntu-20.04` is not available any more. Updating to a newer
14+
# image is not trivial; some debugging is necessary.
15+
#
16+
# HDF5-system-libs:
17+
# name: julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} (system libhdf5 + mpich)
18+
# runs-on: ${{ matrix.os }}
19+
# timeout-minutes: 20
20+
# strategy:
21+
# matrix:
22+
# version:
23+
# - '1.10'
24+
# - '1'
25+
# os:
26+
# - ubuntu-20.04 # required for libhdf5 v1.10.4 support
27+
# arch:
28+
# - x64
29+
# steps:
30+
# - name: Install libraries
31+
# run: |
32+
# sudo apt-get update
33+
# sudo apt-get install mpich libhdf5-mpich-dev
34+
# echo "JULIA_HDF5_PATH=/usr/lib/x86_64-linux-gnu/hdf5/mpich" >> $GITHUB_ENV
35+
# - uses: actions/checkout@v6
36+
# - uses: julia-actions/cache@v2
37+
# - uses: julia-actions/setup-julia@v2
38+
# with:
39+
# version: ${{ matrix.version }}
40+
# arch: ${{ matrix.arch }}
41+
# - uses: julia-actions/julia-buildpkg@v1
42+
# - name: Configure MPI.jl
43+
# shell: julia --color=yes {0}
44+
# run: |
45+
# @show pwd()
46+
# include(joinpath(pwd(), "test", "configure_packages.jl"))
47+
# - uses: julia-actions/julia-runtest@v1
4648

4749
HDF5:
4850
name: julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }}
@@ -51,37 +53,50 @@ jobs:
5153
strategy:
5254
fail-fast: false
5355
matrix:
54-
version:
55-
- '1.9'
56-
- '1.10'
57-
- '1'
58-
- 'nightly'
59-
os:
60-
- ubuntu-latest
61-
- macOS-latest
62-
- windows-latest
63-
arch:
64-
- x64
65-
- x86
66-
exclude:
67-
- os: macOS-latest
68-
arch: x86
69-
- os: ubuntu-latest # excluded because HDF5_jll v1.12 does not support i686
70-
arch: x86
71-
- version: 'nightly'
72-
arch: x86
56+
include:
57+
# We need to keep the association between OS and ARCH, and
58+
# there is no good way to express this as a matrix. Hence we
59+
# duplicate for all Julia versions.
60+
- {version: '1.9', os: ubuntu-24.04, arch: x64}
61+
- {version: '1.9', os: ubuntu-24.04, arch: x86}
62+
- {version: '1.9', os: ubuntu-24.04-arm, arch: aarch64}
63+
- {version: '1.9', os: macOS-15-intel, arch: x64}
64+
- {version: '1.9', os: macOS-26, arch: aarch64}
65+
- {version: '1.9', os: windows-2025, arch: x64}
66+
- {version: '1.9', os: windows-2025, arch: x86}
67+
- {version: '1.10', os: ubuntu-24.04, arch: x64}
68+
- {version: '1.10', os: ubuntu-24.04, arch: x86}
69+
- {version: '1.10', os: ubuntu-24.04-arm, arch: aarch64}
70+
- {version: '1.10', os: macOS-15-intel, arch: x64}
71+
- {version: '1.10', os: macOS-26, arch: aarch64}
72+
- {version: '1.10', os: windows-2025, arch: x64}
73+
- {version: '1.10', os: windows-2025, arch: x86}
74+
- {version: '1', os: ubuntu-24.04, arch: x64}
75+
- {version: '1', os: ubuntu-24.04, arch: x86}
76+
- {version: '1', os: ubuntu-24.04-arm, arch: aarch64}
77+
- {version: '1', os: macOS-15-intel, arch: x64}
78+
- {version: '1', os: macOS-26, arch: aarch64}
79+
- {version: '1', os: windows-2025, arch: x64}
80+
- {version: '1', os: windows-2025, arch: x86}
81+
- {version: 'nightly', os: ubuntu-24.04, arch: x64}
82+
- {version: 'nightly', os: ubuntu-24.04, arch: x86}
83+
- {version: 'nightly', os: ubuntu-24.04-arm, arch: aarch64}
84+
- {version: 'nightly', os: macOS-15-intel, arch: x64}
85+
- {version: 'nightly', os: macOS-26, arch: aarch64}
86+
- {version: 'nightly', os: windows-2025, arch: x64}
87+
- {version: 'nightly', os: windows-2025, arch: x86}
7388
steps:
74-
- uses: actions/checkout@v4
89+
- uses: actions/checkout@v6
7590
- uses: julia-actions/cache@v2
76-
- uses: julia-actions/setup-julia@latest
91+
- uses: julia-actions/setup-julia@v2
7792
with:
7893
version: ${{ matrix.version }}
7994
arch: ${{ matrix.arch }}
80-
- uses: julia-actions/julia-buildpkg@latest
81-
- uses: julia-actions/julia-runtest@latest
95+
- uses: julia-actions/julia-buildpkg@v1
96+
- uses: julia-actions/julia-runtest@v1
8297
env:
8398
JULIA_DEBUG: Main
84-
- uses: julia-actions/julia-processcoverage@latest
99+
- uses: julia-actions/julia-processcoverage@v1
85100
- uses: codecov/codecov-action@v5
86101
with:
87102
files: lcov.info
@@ -103,14 +118,15 @@ jobs:
103118
- {user: JuliaIO, repo: MAT.jl}
104119
- {user: JuliaIO, repo: JLD.jl}
105120
steps:
106-
- uses: actions/checkout@v4
107-
- uses: julia-actions/setup-julia@latest
121+
- uses: actions/checkout@v6
122+
- uses: julia-actions/cache@v2
123+
- uses: julia-actions/setup-julia@v2
108124
with:
109125
version: ${{ matrix.version }}
110126
arch: ${{ matrix.arch }}
111-
- uses: julia-actions/julia-buildpkg@latest
127+
- uses: julia-actions/julia-buildpkg@v1
112128
- name: Clone ${{ matrix.package.repo }}
113-
uses: actions/checkout@v4
129+
uses: actions/checkout@v6
114130
with:
115131
repository: ${{ matrix.package.user }}/${{ matrix.package.repo }}
116132
path: downstream

src/api/helpers.jl

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -726,20 +726,6 @@ function h5p_get_external(plist, idx=0)
726726
break
727727
end
728728
end
729-
# Heuristic for 32-bit Windows bug
730-
# Possibly related:
731-
# https://github.com/HDFGroup/hdf5/pull/1821
732-
# Quote:
733-
# The offset parameter is of type off_t and the offset field of H5O_efl_entry_t
734-
# is HDoff_t which is a different type on Windows (off_t is a 32-bit long,
735-
# HDoff_t is __int64, a 64-bit type).
736-
@static if Sys.iswindows() && sizeof(Int) == 4
737-
lower = 0xffffffff & sz[]
738-
upper = 0xffffffff & (sz[] >> 32)
739-
# Scenario 1: The size is in the lower 32 bits, upper 32 bits contains garbage v1.12.2
740-
# Scenario 2: The size is in the upper 32 bits, lower 32 bits is 0 as of HDF5 v1.12.1
741-
sz[] = lower == 0 && upper != 0xffffffff ? upper : lower
742-
end
743729
return (name=String(name), offset=offset[], size=sz[])
744730
end
745731

src/api/types.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ const hsize_t = UInt64
1010
const hssize_t = Int64
1111
const htri_t = Cint # pseudo-boolean (negative if error)
1212
@static if Sys.iswindows()
13-
const off_t = Int64
14-
else
1513
const off_t = Int
14+
else
15+
const off_t = Int64
1616
end
1717

1818
const H5Z_filter_t = Cint

0 commit comments

Comments
 (0)