1818 - name : Harden Runner
1919 uses : step-security/harden-runner@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
2020 with :
21+ disable-sudo : false
2122 egress-policy : block
2223 allowed-endpoints : >
2324 azure.archive.ubuntu.com:80
3031
3132 - name : Checkout Repository
3233 uses : actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
34+ with :
35+ persist-credentials : false
3336
3437 - name : Install linters
3538 run : |
@@ -47,16 +50,17 @@ jobs:
4750 build-netcdf :
4851 name : Build (${{ matrix.build_type }}; ${{ matrix.os }}; NetCDF=True)
4952 needs : lint
50- runs-on : ubuntu-latest
53+ runs-on : ${{ matrix.os }}
5154 strategy :
55+ fail-fast : false
5256 matrix :
53- os : [ ubuntu-latest, macos-latest ]
54- build_type : [ Debug, Release ]
57+ os : [ " ubuntu-latest", " macos-latest" ]
58+ build_type : [ " Debug", " Release" ]
5559 steps :
5660 - name : Harden Runner
5761 uses : step-security/harden-runner@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
5862 with :
59- disable-sudo : true
63+ disable-sudo : false
6064 egress-policy : block
6165 allowed-endpoints : >
6266 azure.archive.ubuntu.com:80
@@ -68,29 +72,45 @@ jobs:
6872
6973 - name : Checkout Repository
7074 uses : actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
75+ with :
76+ persist-credentials : false
77+
78+ - name : Install NetCDF (Ubuntu/apt)
79+ if : matrix.os == 'ubuntu-latest'
80+ run : |
81+ sudo apt-get update
82+ sudo apt-get install -y libnetcdf-dev
83+ - name : Install NetCDF4 (macOS/homebrew)
84+ if : (matrix.os == 'macos-latest') && (!matrix.conda)
85+ uses : tecolicom/actions-use-homebrew-tools@b9c066b79607fa3d71e0be05d7003bb75fd9ff34 # v1.3.0
86+ with :
87+ tools : netcdf
88+ cache : " yes"
7189
7290 - name : Fetch NetCDF CMake script
7391 run : |
7492 wget https://raw.githubusercontent.com/Kitware/VTK/master/CMake/FindNetCDF.cmake -P cmake
7593
7694 - name : Build
7795 id : build
78- continue-on-error : true
7996 run : |
80- cmake .
81- cmake --build . --config ${{ matrix.build_type }} -j 3
97+ mkdir build
98+ cd build
99+ cmake ..
100+ cmake --build . --config ${{ matrix.build_type }} -j 3 --verbose
82101
83102 - name : Run tests
84103 if : steps.build.outcome == 'success'
85104 run : |
86- ./Raven
87- ./Raven -v
105+ ./build/ Raven
106+ ./build/ Raven -v
88107
89108 build :
90109 name : Build (${{ matrix.build_type }}; ${{ matrix.os }}; NetCDF=False)
91110 needs : lint
92- runs-on : ubuntu-latest
111+ runs-on : ${{ matrix.os }}
93112 strategy :
113+ fail-fast : false
94114 matrix :
95115 os : [ ubuntu-latest, macos-latest, windows-latest ]
96116 build_type : [ Debug, Release ]
@@ -113,19 +133,28 @@ jobs:
113133
114134 - name : Checkout Repository
115135 uses : actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
136+ with :
137+ persist-credentials : false
116138
117139 - name : Install dependencies (Windows)
118140 if : matrix.os == 'windows-latest'
119141 uses : lukka/get-cmake@2bcb1a4c14ab154443cc740dced0f9b6a8fb2b59 # v3.29.6
120142
121143 - name : Build
122144 id : build
123- continue-on-error : true
124145 run : |
125- cmake .
126- cmake --build . --config ${{ matrix.build_type }} -j 3
146+ mkdir build
147+ cd build
148+ cmake ..
149+ cmake --build . --config ${{ matrix.build_type }} -j 3 --verbose
127150
128- - name : Run tests
151+ - name : Run tests (Windows)
152+ if : ${{ matrix.os == 'windows-latest' && steps.build.outcome == 'success' }}
153+ run : |
154+ ./build/${{ matrix.build_type }}/Raven.exe
155+ ./build/${{ matrix.build_type }}/Raven.exe -v
156+ - name : Run tests (Ubuntu/macOS)
157+ if : ${{ matrix.os != 'windows-latest' && steps.build.outcome == 'success' }}
129158 run : |
130- ./Raven
131- ./Raven -v
159+ ./build/ Raven
160+ ./build/ Raven -v
0 commit comments