9494 uses : ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0
9595
9696 - name : Install CMake
97- uses : lukka/get-cmake@9e07ecdcee1b12e5037e42f410b67f03e2f626e1 # latest
97+ uses : lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # latest
9898 with :
9999 cmakeVersion : ${{ inputs.cmake_version }}
100100 ninjaVersion : latest
@@ -174,7 +174,7 @@ jobs:
174174 shell : bash
175175
176176 - name : Sign files with Trusted Signing
177- uses : azure/trusted-signing-action@1d365fec12862c4aa68fcac418143d73f0cea293 # v0.5.11
177+ uses : azure/trusted-signing-action@87c2e83e6868da99d3380aa309851b32ed9a8346 # v1.1.0
178178 with :
179179 azure-tenant-id : ${{ secrets.AZURE_TENANT_ID }}
180180 azure-client-id : ${{ secrets.AZURE_CLIENT_ID }}
@@ -229,6 +229,178 @@ jobs:
229229 path : ${{ runner.workspace }}/buildmsi/${{ steps.set-file-base.outputs.FILE_BASE }}-win-vs2022_cl.msi
230230 if-no-files-found : error # 'warn' or 'ignore' are also available, defaults to `warn`
231231
232+ build_and_test_win_arm64 :
233+ # Windows ARM64 w/ MSVC (Native)
234+ #
235+ name : " Windows MSVC ARM64 CTest"
236+ runs-on : windows-11-arm
237+ needs : [check-secret]
238+ steps :
239+ - name : Install Dependencies (Windows ARM64)
240+ run : choco install ninja
241+
242+ - name : Get Sources
243+ uses : actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
244+
245+ - name : Setup Doxygen
246+ uses : ./.github/actions/setup-doxygen
247+
248+ - name : Enable Developer Command Prompt
249+ uses : ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0
250+ with :
251+ arch : arm64
252+
253+ - name : Install CMake
254+ uses : lukka/get-cmake@9e07ecdcee1b12e5037e42f410b67f03e2f626e1 # latest
255+ with :
256+ cmakeVersion : ${{ inputs.cmake_version }}
257+ ninjaVersion : latest
258+
259+ - name : Check CMake Version
260+ shell : bash
261+ run : |
262+ which cmake
263+ cmake --version
264+
265+ - name : Set up JDK 21
266+ uses : actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5
267+ with :
268+ java-version : ' 21'
269+ distribution : ' temurin'
270+ architecture : ' aarch64'
271+
272+ - name : Set environment for MSVC ARM64 (Windows)
273+ run : |
274+ echo "CXX=cl.exe" >> $GITHUB_ENV
275+ echo "CC=cl.exe" >> $GITHUB_ENV
276+ shell : bash
277+
278+ - name : Set file base name (Windows ARM64)
279+ id : set-file-base
280+ run : |
281+ FILE_NAME_BASE=$(echo "${{ inputs.file_base }}")
282+ echo "FILE_BASE=$FILE_NAME_BASE" >> $GITHUB_OUTPUT
283+ if [[ '${{ inputs.use_environ }}' == 'release' ]]
284+ then
285+ SOURCE_NAME_BASE=$(echo "${{ inputs.snap_name }}")
286+ else
287+ SOURCE_NAME_BASE=$(echo "hdfsrc")
288+ fi
289+ echo "SOURCE_BASE=$SOURCE_NAME_BASE" >> $GITHUB_OUTPUT
290+ shell : bash
291+
292+ # Get files created by release script
293+ - name : Get zip-tarball (Windows ARM64)
294+ uses : actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v6
295+ with :
296+ name : zip-tarball
297+ path : ${{ github.workspace }}
298+
299+ - name : using powershell
300+ shell : pwsh
301+ run : Get-Location
302+
303+ - name : List files for the space (Windows ARM64)
304+ run : |
305+ Get-ChildItem -Path ${{ github.workspace }}
306+ Get-ChildItem -Path ${{ runner.workspace }}
307+ shell : pwsh
308+
309+ - name : Uncompress source (Windows ARM64)
310+ working-directory : ${{ github.workspace }}
311+ run : 7z x ${{ steps.set-file-base.outputs.FILE_BASE }}.zip
312+ shell : bash
313+
314+ - name : Install TrustedSigning (Windows ARM64)
315+ run : |
316+ Invoke-WebRequest -Uri https://dist.nuget.org/win-x86-commandline/latest/nuget.exe -OutFile .\nuget.exe
317+ .\nuget.exe install Microsoft.Windows.SDK.BuildTools -Version 10.0.22621.3233 -x
318+ .\nuget.exe install Microsoft.Trusted.Signing.Client -Version 1.0.86 -x
319+ shell : pwsh
320+ if : ${{ needs.check-secret.outputs.sign-state == 'exists' }}
321+
322+ - name : create-json
323+ id : create-json
324+ uses : jsdaniell/create-json@b8e77fa01397ca39cc4a6198cc29a3be5481afef # v1.2.3
325+ with :
326+ name : " credentials.json"
327+ dir : ' ${{ steps.set-file-base.outputs.SOURCE_BASE }}'
328+ json : ' {"Endpoint": "${{ secrets.AZURE_ENDPOINT }}","CodeSigningAccountName": "${{ secrets.AZURE_CODE_SIGNING_NAME }}","CertificateProfileName": "${{ secrets.AZURE_CERT_PROFILE_NAME }}"}'
329+ if : ${{ needs.check-secret.outputs.sign-state == 'exists' }}
330+
331+ - name : Install WiX v3.14
332+ run : |
333+ Invoke-WebRequest -Uri https://github.com/wixtoolset/wix3/releases/download/wix3141rtm/wix314-binaries.zip -OutFile wix314-binaries.zip
334+ Expand-Archive -Path wix314-binaries.zip -DestinationPath C:\wix314
335+ echo "C:\wix314" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
336+ echo "WIX=C:\wix314" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
337+ shell : pwsh
338+
339+ - name : Run CTest (Windows ARM64)
340+ env :
341+ BINSIGN : ${{ needs.check-secret.outputs.sign-state }}
342+ SIGNTOOLDIR : ${{ github.workspace }}/Microsoft.Windows.SDK.BuildTools/bin/10.0.22621.0/arm64
343+ run : |
344+ cd "${{ runner.workspace }}/hdf5/${{ steps.set-file-base.outputs.SOURCE_BASE }}"
345+ cmake --workflow --preset=${{ inputs.preset_name }}-MSVC-ARM64 --fresh
346+ shell : bash
347+
348+ - name : Sign files with Trusted Signing
349+ uses : azure/trusted-signing-action@1d365fec12862c4aa68fcac418143d73f0cea293 # v0.5.11
350+ with :
351+ azure-tenant-id : ${{ secrets.AZURE_TENANT_ID }}
352+ azure-client-id : ${{ secrets.AZURE_CLIENT_ID }}
353+ azure-client-secret : ${{ secrets.AZURE_CLIENT_SECRET }}
354+ endpoint : ${{ secrets.AZURE_ENDPOINT }}
355+ trusted-signing-account-name : ${{ secrets.AZURE_CODE_SIGNING_NAME }}
356+ certificate-profile-name : ${{ secrets.AZURE_CERT_PROFILE_NAME }}
357+ files-folder : ${{ runner.workspace }}/hdf5/build/${{ inputs.preset_name }}-MSVC-ARM64
358+ files-folder-filter : msi
359+ file-digest : SHA256
360+ timestamp-rfc3161 : http://timestamp.acs.microsoft.com
361+ timestamp-digest : SHA256
362+ if : ${{ needs.check-secret.outputs.sign-state == 'exists' }}
363+
364+ - name : Publish binary (Windows ARM64)
365+ id : publish-ctest-binary
366+ run : |
367+ mkdir "${{ runner.workspace }}/build"
368+ mkdir "${{ runner.workspace }}/build/hdf5"
369+ Copy-Item -Path ${{ runner.workspace }}/hdf5/${{ steps.set-file-base.outputs.SOURCE_BASE }}/LICENSE -Destination ${{ runner.workspace }}/build/hdf5/
370+ Copy-Item -Path ${{ runner.workspace }}/hdf5/build/${{ inputs.preset_name }}-MSVC-ARM64/README.md -Destination ${{ runner.workspace }}/build/hdf5/
371+ Copy-Item -Path ${{ runner.workspace }}/hdf5/build/${{ inputs.preset_name }}-MSVC-ARM64/* -Destination ${{ runner.workspace }}/build/hdf5/ -Include *.zip
372+ cd "${{ runner.workspace }}/build"
373+ 7z a -tzip ${{ steps.set-file-base.outputs.FILE_BASE }}-win-vs2022_cl_arm64.zip hdf5
374+ shell : pwsh
375+
376+ - name : Publish msi binary (Windows ARM64)
377+ id : publish-ctest-msi-binary
378+ run : |
379+ mkdir "${{ runner.workspace }}/buildmsi"
380+ Copy-Item -Path ${{ runner.workspace }}/hdf5/build/${{ inputs.preset_name }}-MSVC-ARM64/* -Destination ${{ runner.workspace }}/buildmsi/${{ steps.set-file-base.outputs.FILE_BASE }}-win-vs2022_cl_arm64.msi -Include *.msi
381+ shell : pwsh
382+
383+ - name : List files in the space (Windows ARM64)
384+ run : |
385+ Get-ChildItem -Path ${{ github.workspace }}
386+ Get-ChildItem -Path ${{ runner.workspace }}
387+ shell : pwsh
388+
389+ # Save files created by CTest script
390+ - name : Save published binary (Windows ARM64)
391+ uses : actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v5
392+ with :
393+ name : zip-vs2022_cl_arm64-binary
394+ path : ${{ runner.workspace }}/build/${{ steps.set-file-base.outputs.FILE_BASE }}-win-vs2022_cl_arm64.zip
395+ if-no-files-found : error # 'warn' or 'ignore' are also available, defaults to `warn`
396+
397+ - name : Save published msi binary (Windows ARM64)
398+ uses : actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v5
399+ with :
400+ name : msi-vs2022_cl_arm64-binary
401+ path : ${{ runner.workspace }}/buildmsi/${{ steps.set-file-base.outputs.FILE_BASE }}-win-vs2022_cl_arm64.msi
402+ if-no-files-found : error # 'warn' or 'ignore' are also available, defaults to `warn`
403+
232404 build_and_test_linux :
233405 # Linux (Ubuntu) w/ gcc
234406 #
@@ -241,8 +413,16 @@ jobs:
241413 sudo apt-get update
242414 sudo apt-get install ninja-build graphviz
243415
416+ - name : Get Actions
417+ uses : actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
418+ with :
419+ sparse-checkout : .github/actions
420+
421+ - name : Setup Doxygen
422+ uses : ./.github/actions/setup-doxygen
423+
244424 - name : Install CMake
245- uses : lukka/get-cmake@9e07ecdcee1b12e5037e42f410b67f03e2f626e1 # latest
425+ uses : lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # latest
246426 with :
247427 cmakeVersion : ${{ inputs.cmake_version }}
248428 ninjaVersion : latest
@@ -416,7 +596,7 @@ jobs:
416596 clang -v
417597
418598 - name : Install CMake
419- uses : lukka/get-cmake@9e07ecdcee1b12e5037e42f410b67f03e2f626e1 # latest
599+ uses : lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # latest
420600 with :
421601 cmakeVersion : ${{ inputs.cmake_version }}
422602 ninjaVersion : latest
@@ -638,7 +818,7 @@ jobs:
638818 sudo apt-get install ninja-build
639819
640820 - name : Install CMake
641- uses : lukka/get-cmake@9e07ecdcee1b12e5037e42f410b67f03e2f626e1 # latest
821+ uses : lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # latest
642822 with :
643823 cmakeVersion : ${{ inputs.cmake_version }}
644824 ninjaVersion : latest
@@ -740,7 +920,7 @@ jobs:
740920 version : ' 2025.0'
741921
742922 - name : Install CMake
743- uses : lukka/get-cmake@9e07ecdcee1b12e5037e42f410b67f03e2f626e1 # latest
923+ uses : lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # latest
744924 with :
745925 cmakeVersion : ${{ inputs.cmake_version }}
746926 ninjaVersion : latest
@@ -811,7 +991,7 @@ jobs:
811991 shell : pwsh
812992
813993 - name : Sign files with Trusted Signing (Windows_intel)
814- uses : azure/trusted-signing-action@1d365fec12862c4aa68fcac418143d73f0cea293 # v0.5.11
994+ uses : azure/trusted-signing-action@87c2e83e6868da99d3380aa309851b32ed9a8346 # v1.1.0
815995 with :
816996 azure-tenant-id : ${{ secrets.AZURE_TENANT_ID }}
817997 azure-client-id : ${{ secrets.AZURE_CLIENT_ID }}
@@ -886,7 +1066,7 @@ jobs:
8861066 version : ' 2025.0'
8871067
8881068 - name : Install CMake
889- uses : lukka/get-cmake@9e07ecdcee1b12e5037e42f410b67f03e2f626e1 # latest
1069+ uses : lukka/get-cmake@f176ccd3f28bda569c43aae4894f06b2435a3375 # latest
8901070 with :
8911071 cmakeVersion : ${{ inputs.cmake_version }}
8921072 ninjaVersion : latest
@@ -951,4 +1131,4 @@ jobs:
9511131 with :
9521132 name : tgz-ubuntu-2404_intel-binary
9531133 path : ${{ runner.workspace }}/build/${{ steps.set-file-base.outputs.FILE_BASE }}-ubuntu-2404_intel.tar.gz
954- if-no-files-found : error # 'warn' or 'ignore' are also available, defaults to `warn`
1134+ if-no-files-found : error # 'warn' or 'ignore' are also available, defaults to `warn`
0 commit comments