diff --git a/.github/workflows/ant-app.yml b/.github/workflows/ant-app.yml
index 8c248878..4f237c49 100644
--- a/.github/workflows/ant-app.yml
+++ b/.github/workflows/ant-app.yml
@@ -37,16 +37,51 @@ on:
required: true
KEYCHAIN_PASSWD:
required: true
+ AZURE_TENANT_ID:
+ required: true
+ AZURE_CLIENT_ID:
+ required: true
+ AZURE_CLIENT_SECRET:
+ required: true
+ AZURE_ENDPOINT:
+ required: true
+ AZURE_CODE_SIGNING_NAME:
+ required: true
+ AZURE_CERT_PROFILE_NAME:
+ required: true
permissions:
contents: read
jobs:
+ check-secret:
+ name: Check Secrets exists
+ runs-on: ubuntu-latest
+ outputs:
+ sign-state: ${{ steps.set-signing-state.outputs.BINSIGN }}
+ steps:
+ - name: Identify Signing Status
+ id: set-signing-state
+ env:
+ signing_secret: ${{ secrets.AZURE_ENDPOINT }}
+ run: |
+ if [[ '${{ env.signing_secret }}' == '' ]]
+ then
+ SIGN_VAL=$(echo 'notexists')
+ else
+ SIGN_VAL=$(echo 'exists')
+ fi
+ echo "BINSIGN=$SIGN_VAL" >> $GITHUB_OUTPUT
+ shell: bash
+
+ - run: echo "signing is ${{ steps.set-signing-state.outputs.BINSIGN }}."
+
build_and_test_win:
# Windows w/ MSVC + CMake
#
name: "Windows MSVC CTest"
runs-on: windows-latest
+ needs: [check-secret]
steps:
- uses: actions/checkout@v4
@@ -174,8 +209,8 @@ jobs:
- name: Get zip-tarball (Windows)
uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
with:
- name: zip-tarball
- path: ${{ github.workspace }}
+ name: zip-tarball
+ path: ${{ github.workspace }}
- name: using powershell
shell: pwsh
@@ -183,8 +218,8 @@ jobs:
- name: List files for the space (Windows)
run: |
- Get-ChildItem -Path ${{ github.workspace }}
- Get-ChildItem -Path ${{ runner.workspace }}
+ Get-ChildItem -Path ${{ github.workspace }}
+ Get-ChildItem -Path ${{ runner.workspace }}
shell: pwsh
- name: Uncompress source (Windows)
@@ -192,10 +227,35 @@ jobs:
run: 7z x ${{ steps.set-file-base.outputs.FILE_BASE }}.zip
shell: bash
+ - name: Install TrustedSigning (Windows)
+ run: |
+ Invoke-WebRequest -Uri https://dist.nuget.org/win-x86-commandline/latest/nuget.exe -OutFile .\nuget.exe
+ .\nuget.exe install Microsoft.Windows.SDK.BuildTools -Version 10.0.22621.3233 -x
+ .\nuget.exe install Microsoft.Trusted.Signing.Client -Version 1.0.53 -x
+# Install-Module -Name TrustedSigning -RequiredVersion 0.4.1
+ shell: pwsh
+ if: ${{ needs.check-secret.outputs.sign-state == 'exists' }}
+
+ - name: create-json
+ id: create-json
+ uses: jsdaniell/create-json@v1.2.3
+ with:
+ name: "credentials.json"
+ json: '{"Endpoint": "${{ secrets.AZURE_ENDPOINT }}","CodeSigningAccountName": "${{ secrets.AZURE_CODE_SIGNING_NAME }}","CertificateProfileName": "${{ secrets.AZURE_CERT_PROFILE_NAME }}"}'
+ if: ${{ needs.check-secret.outputs.sign-state == 'exists' }}
+
- name: Build with Ant
env:
HDFLIBS: ${{ steps.set-hdflib-name.outputs.HDFLIB_ENV }}
HDF5LIBS: ${{ steps.set-hdf5lib-name.outputs.HDF5LIB_ENV }}
+ BINSIGN: ${{ needs.check-secret.outputs.sign-state }}
+ AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
+ AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
+ AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
+ AZURE_ENDPOINT: ${{ secrets.AZURE_ENDPOINT }}
+ AZURE_CODE_SIGNING_NAME: ${{ secrets.AZURE_CODE_SIGNING_NAME }}
+ AZURE_CERT_PROFILE_NAME: ${{ secrets.AZURE_CERT_PROFILE_NAME }}
+ SIGNTOOLDIR: ${{ github.workspace }}/Microsoft.Windows.SDK.BuildTools/bin/10.0.22621.0/x64
run: |
ant -noinput -buildfile build.xml binaryAppPackage
shell: bash
@@ -251,6 +311,7 @@ jobs:
#
name: "Ubuntu gcc CMake"
runs-on: ubuntu-latest
+ needs: [check-secret]
steps:
- uses: actions/checkout@v4
@@ -304,7 +365,7 @@ jobs:
version: 'tags/${{ inputs.use_hdf5 }}'
file: '${{ inputs.name_hdf5 }}-ubuntu-2204_gcc.tar.gz'
- - name: Get hdf5 release
+ - name: Get hdf5 snapshot
if: ${{ (inputs.use_environ == 'snapshots') }}
uses: dsaltares/fetch-gh-release-asset@master
with:
@@ -419,7 +480,8 @@ jobs:
# mac (osx) w/ clang + ant
#
name: "mac clang CMake"
- runs-on: macos-13
+ runs-on: macos-latest
+ needs: [check-secret]
steps:
- uses: actions/checkout@v4
@@ -443,6 +505,7 @@ jobs:
# import certificate to keychain
security -v import $CERTIFICATE_PATH -P $P12_PASSWORD -A -t cert -f pkcs12 -k $KEYCHAIN_FILE
security -v set-key-partition-list -S apple-tool:,codesign:,apple: -k $KEYCHAIN_PASSWD $KEYCHAIN_FILE
+ if: ${{ needs.check-secret.outputs.sign-state == 'exists' }}
- name: Set up JDK 21
uses: actions/setup-java@v4
@@ -451,40 +514,20 @@ jobs:
distribution: 'temurin'
- name: Get hdf4 release
- continue-on-error: true
- if: ${{ (inputs.use_environ == 'release') }}
- uses: dsaltares/fetch-gh-release-asset@master
- with:
- repo: 'HDFGroup/hdf4'
- version: 'tags/${{ inputs.use_hdf }}'
- file: '${{ inputs.use_hdf }}-osx.tar.gz'
-
- - name: Get hdf4 release osx12
- continue-on-error: true
if: ${{ (inputs.use_environ == 'release') }}
uses: dsaltares/fetch-gh-release-asset@master
with:
repo: 'HDFGroup/hdf4'
version: 'tags/${{ inputs.use_hdf }}'
- file: '${{ inputs.use_hdf }}-osx12.tar.gz'
-
- - name: Get hdf4 release
- continue-on-error: true
- if: ${{ (inputs.use_environ == 'snapshots') }}
- uses: dsaltares/fetch-gh-release-asset@master
- with:
- repo: 'HDFGroup/hdf4'
- version: 'tags/snapshot'
- file: '${{ inputs.use_hdf }}-osx.tar.gz'
+ file: '${{ inputs.use_hdf }}-macos14_clang.tar.gz'
- - name: Get hdf4 snapshot osx12
- continue-on-error: true
+ - name: Get hdf4 snapshot
if: ${{ (inputs.use_environ == 'snapshots') }}
uses: dsaltares/fetch-gh-release-asset@master
with:
repo: 'HDFGroup/hdf4'
version: 'tags/snapshot'
- file: '${{ inputs.use_hdf }}-osx12.tar.gz'
+ file: '${{ inputs.use_hdf }}-macos14_clang.tar.gz'
- name: List files for the space (mac)
run: |
@@ -492,7 +535,7 @@ jobs:
ls ${{ runner.workspace }}
- name: Uncompress gh binary (mac)
- run: tar -zxvf ${{ github.workspace }}/${{ inputs.use_hdf }}-osx*.tar.gz
+ run: tar -zxvf ${{ github.workspace }}/${{ inputs.use_hdf }}-macos14_clang*.tar.gz
- name: Uncompress hdf4 binary (mac)
run: |
@@ -507,40 +550,20 @@ jobs:
echo "HDFLIB_ENV=$HDFDIR$FILE_NAME_HDF" >> $GITHUB_OUTPUT
- name: Get hdf5 release
- continue-on-error: true
if: ${{ (inputs.use_environ == 'release') }}
uses: dsaltares/fetch-gh-release-asset@master
with:
repo: 'HDFGroup/hdf5'
version: 'tags/${{ inputs.use_hdf5 }}'
- file: '${{ inputs.name_hdf5 }}-osx.tar.gz'
-
- - name: Get hdf5 release osx12
- continue-on-error: true
- if: ${{ (inputs.use_environ == 'release') }}
- uses: dsaltares/fetch-gh-release-asset@master
- with:
- repo: 'HDFGroup/hdf5'
- version: 'tags/${{ inputs.use_hdf5 }}'
- file: '${{ inputs.name_hdf5 }}-osx12.tar.gz'
+ file: '${{ inputs.name_hdf5 }}-macos14_clang.tar.gz'
- name: Get hdf5 snapshot
- continue-on-error: true
- if: ${{ (inputs.use_environ == 'snapshots') }}
- uses: dsaltares/fetch-gh-release-asset@master
- with:
- repo: 'HDFGroup/hdf5'
- version: 'tags/snapshot-1.14'
- file: '${{ inputs.name_hdf5 }}-osx.tar.gz'
-
- - name: Get hdf5 snapshot osx12
- continue-on-error: true
if: ${{ (inputs.use_environ == 'snapshots') }}
uses: dsaltares/fetch-gh-release-asset@master
with:
repo: 'HDFGroup/hdf5'
version: 'tags/snapshot-1.14'
- file: '${{ inputs.name_hdf5 }}-osx12.tar.gz'
+ file: '${{ inputs.name_hdf5 }}-macos14_clang.tar.gz'
- name: List files for the space (mac)
run: |
@@ -548,7 +571,7 @@ jobs:
ls ${{ runner.workspace }}
- name: Uncompress gh binary (mac)
- run: tar -zxvf ${{ github.workspace }}/${{ inputs.name_hdf5 }}-osx*.tar.gz
+ run: tar -zxvf ${{ github.workspace }}/${{ inputs.name_hdf5 }}-macos14_clang*.tar.gz
- name: Uncompress hdf5 binary (mac)
run: |
@@ -599,6 +622,7 @@ jobs:
env:
HDFLIBS: ${{ steps.set-hdflib-name.outputs.HDFLIB_ENV }}
HDF5LIBS: ${{ steps.set-hdf5lib-name.outputs.HDF5LIB_ENV }}
+ BINSIGN: ${{ needs.check-secret.outputs.sign-state }}
KEYCHAIN_PASSWD: ${{ secrets.KEYCHAIN_PASSWD }}
KEYCHAIN_NAME: ${{ vars.KEYCHAIN_NAME }}
SIGNER: ${{ vars.SIGNER }}
@@ -631,7 +655,7 @@ jobs:
- name: Save published snapshot-app binary (mac)
uses: actions/upload-artifact@v4
with:
- name: tgz-osx-app-binary
+ name: tgz-macos14_clang-app-binary
path: ${{ github.workspace }}/build/dist/${{ steps.set-file-base.outputs.FILE_BASE }}App-Darwin.tar.gz
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
if: ${{ (inputs.use_environ == 'snapshots') }}
@@ -640,7 +664,7 @@ jobs:
- name: Save published release-app binary (mac)
uses: actions/upload-artifact@v4
with:
- name: tgz-osx-app-binary
+ name: tgz-macos14_clang-app-binary
path: ${{ github.workspace }}/build/dist/${{ inputs.snap_name }}App-Darwin.tar.gz
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
if: ${{ (inputs.use_environ == 'release') }}
diff --git a/.github/workflows/ant.yml b/.github/workflows/ant.yml
index fdd2e7ad..9b5dbec0 100644
--- a/.github/workflows/ant.yml
+++ b/.github/workflows/ant.yml
@@ -37,16 +37,51 @@ on:
required: true
KEYCHAIN_PASSWD:
required: true
+ AZURE_TENANT_ID:
+ required: true
+ AZURE_CLIENT_ID:
+ required: true
+ AZURE_CLIENT_SECRET:
+ required: true
+ AZURE_ENDPOINT:
+ required: true
+ AZURE_CODE_SIGNING_NAME:
+ required: true
+ AZURE_CERT_PROFILE_NAME:
+ required: true
permissions:
contents: read
jobs:
+ check-secret:
+ name: Check Secrets exists
+ runs-on: ubuntu-latest
+ outputs:
+ sign-state: ${{ steps.set-signing-state.outputs.BINSIGN }}
+ steps:
+ - name: Identify Signing Status
+ id: set-signing-state
+ env:
+ signing_secret: ${{ secrets.AZURE_ENDPOINT }}
+ run: |
+ if [[ '${{ env.signing_secret }}' == '' ]]
+ then
+ SIGN_VAL=$(echo 'notexists')
+ else
+ SIGN_VAL=$(echo 'exists')
+ fi
+ echo "BINSIGN=$SIGN_VAL" >> $GITHUB_OUTPUT
+ shell: bash
+
+ - run: echo "signing is ${{ steps.set-signing-state.outputs.BINSIGN }}."
+
build_and_test_win:
# Windows w/ MSVC + CMake
#
name: "Windows MSVC CTest"
runs-on: windows-latest
+ needs: [check-secret]
steps:
- uses: actions/checkout@v4
@@ -59,7 +94,7 @@ jobs:
- name: Enable Developer Command Prompt
uses: ilammy/msvc-dev-cmd@v1.13.0
- - name: Get hdf4 snapshot
+ - name: Get hdf4 release
if: ${{ (inputs.use_environ == 'release') }}
uses: dsaltares/fetch-gh-release-asset@master
with:
@@ -105,7 +140,7 @@ jobs:
echo "HDFLIB_ENV=$HDFDIR" >> $GITHUB_OUTPUT
shell: bash
- - name: Get hdf5 snapshot
+ - name: Get hdf5 release
if: ${{ (inputs.use_environ == 'release') }}
uses: dsaltares/fetch-gh-release-asset@master
with:
@@ -174,8 +209,8 @@ jobs:
- name: Get zip-tarball (Windows)
uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
with:
- name: zip-tarball
- path: ${{ github.workspace }}
+ name: zip-tarball
+ path: ${{ github.workspace }}
- name: using powershell
shell: pwsh
@@ -183,8 +218,8 @@ jobs:
- name: List files for the space (Windows)
run: |
- Get-ChildItem -Path ${{ github.workspace }}
- Get-ChildItem -Path ${{ runner.workspace }}
+ Get-ChildItem -Path ${{ github.workspace }}
+ Get-ChildItem -Path ${{ runner.workspace }}
shell: pwsh
- name: Uncompress source (Windows)
@@ -192,10 +227,35 @@ jobs:
run: 7z x ${{ steps.set-file-base.outputs.FILE_BASE }}.zip
shell: bash
+ - name: Install TrustedSigning (Windows)
+ run: |
+ Invoke-WebRequest -Uri https://dist.nuget.org/win-x86-commandline/latest/nuget.exe -OutFile .\nuget.exe
+ .\nuget.exe install Microsoft.Windows.SDK.BuildTools -Version 10.0.22621.3233 -x
+ .\nuget.exe install Microsoft.Trusted.Signing.Client -Version 1.0.53 -x
+# Install-Module -Name TrustedSigning -RequiredVersion 0.4.1
+ shell: pwsh
+ if: ${{ needs.check-secret.outputs.sign-state == 'exists' }}
+
+ - name: create-json
+ id: create-json
+ uses: jsdaniell/create-json@v1.2.3
+ with:
+ name: "credentials.json"
+ json: '{"Endpoint": "${{ secrets.AZURE_ENDPOINT }}","CodeSigningAccountName": "${{ secrets.AZURE_CODE_SIGNING_NAME }}","CertificateProfileName": "${{ secrets.AZURE_CERT_PROFILE_NAME }}"}'
+ if: ${{ needs.check-secret.outputs.sign-state == 'exists' }}
+
- name: Build with Ant
env:
HDFLIBS: ${{ steps.set-hdflib-name.outputs.HDFLIB_ENV }}
HDF5LIBS: ${{ steps.set-hdf5lib-name.outputs.HDF5LIB_ENV }}
+ BINSIGN: ${{ needs.check-secret.outputs.sign-state }}
+ AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
+ AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
+ AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
+ AZURE_ENDPOINT: ${{ secrets.AZURE_ENDPOINT }}
+ AZURE_CODE_SIGNING_NAME: ${{ secrets.AZURE_CODE_SIGNING_NAME }}
+ AZURE_CERT_PROFILE_NAME: ${{ secrets.AZURE_CERT_PROFILE_NAME }}
+ SIGNTOOLDIR: ${{ github.workspace }}/Microsoft.Windows.SDK.BuildTools/bin/10.0.22621.0/x64
run: |
ant -noinput -buildfile build.xml binaryPackage
shell: bash
@@ -243,6 +303,7 @@ jobs:
#
name: "Ubuntu gcc CMake"
runs-on: ubuntu-latest
+ needs: [check-secret]
steps:
- uses: actions/checkout@v4
@@ -252,7 +313,7 @@ jobs:
java-version: '21'
distribution: 'temurin'
- - name: Get hdf4 snapshot
+ - name: Get hdf4 release
if: ${{ (inputs.use_environ == 'release') }}
uses: dsaltares/fetch-gh-release-asset@master
with:
@@ -296,7 +357,7 @@ jobs:
version: 'tags/${{ inputs.use_hdf5 }}'
file: '${{ inputs.name_hdf5 }}-ubuntu-2204_gcc.tar.gz'
- - name: Get hdf5 release
+ - name: Get hdf5 snapshot
if: ${{ (inputs.use_environ == 'snapshots') }}
uses: dsaltares/fetch-gh-release-asset@master
with:
@@ -403,7 +464,8 @@ jobs:
# mac (osx) w/ clang + ant
#
name: "mac clang CMake"
- runs-on: macos-13
+ runs-on: macos-latest
+ needs: [check-secret]
steps:
- uses: actions/checkout@v4
@@ -427,6 +489,7 @@ jobs:
# import certificate to keychain
security -v import $CERTIFICATE_PATH -P $P12_PASSWORD -A -t cert -f pkcs12 -k $KEYCHAIN_FILE
security -v set-key-partition-list -S apple-tool:,codesign:,apple: -k $KEYCHAIN_PASSWD $KEYCHAIN_FILE
+ if: ${{ needs.check-secret.outputs.sign-state == 'exists' }}
- name: Set up JDK 21
uses: actions/setup-java@v4
@@ -435,40 +498,20 @@ jobs:
distribution: 'temurin'
- name: Get hdf4 release
- continue-on-error: true
- if: ${{ (inputs.use_environ == 'release') }}
- uses: dsaltares/fetch-gh-release-asset@master
- with:
- repo: 'HDFGroup/hdf4'
- version: 'tags/${{ inputs.use_hdf }}'
- file: '${{ inputs.use_hdf }}-osx.tar.gz'
-
- - name: Get hdf4 release osx12
- continue-on-error: true
if: ${{ (inputs.use_environ == 'release') }}
uses: dsaltares/fetch-gh-release-asset@master
with:
repo: 'HDFGroup/hdf4'
version: 'tags/${{ inputs.use_hdf }}'
- file: '${{ inputs.use_hdf }}-osx12.tar.gz'
+ file: '${{ inputs.use_hdf }}-macos14_clang.tar.gz'
- name: Get hdf4 snapshot
- continue-on-error: true
- if: ${{ (inputs.use_environ == 'snapshots') }}
- uses: dsaltares/fetch-gh-release-asset@master
- with:
- repo: 'HDFGroup/hdf4'
- version: 'tags/snapshot'
- file: '${{ inputs.use_hdf }}-osx.tar.gz'
-
- - name: Get hdf4 snapshot osx12
- continue-on-error: true
if: ${{ (inputs.use_environ == 'snapshots') }}
uses: dsaltares/fetch-gh-release-asset@master
with:
repo: 'HDFGroup/hdf4'
version: 'tags/snapshot'
- file: '${{ inputs.use_hdf }}-osx12.tar.gz'
+ file: '${{ inputs.use_hdf }}-macos14_clang.tar.gz'
- name: List files for the space (mac)
run: |
@@ -476,7 +519,7 @@ jobs:
ls ${{ runner.workspace }}
- name: Uncompress gh binary (mac)
- run: tar -zxvf ${{ github.workspace }}/${{ inputs.use_hdf }}-osx*.tar.gz
+ run: tar -zxvf ${{ github.workspace }}/${{ inputs.use_hdf }}-macos14_clang*.tar.gz
- name: Uncompress hdf4 binary (mac)
run: |
@@ -491,40 +534,20 @@ jobs:
echo "HDFLIB_ENV=$HDFDIR$FILE_NAME_HDF" >> $GITHUB_OUTPUT
- name: Get hdf5 release
- continue-on-error: true
if: ${{ (inputs.use_environ == 'release') }}
uses: dsaltares/fetch-gh-release-asset@master
with:
repo: 'HDFGroup/hdf5'
version: 'tags/${{ inputs.use_hdf5 }}'
- file: '${{ inputs.name_hdf5 }}-osx.tar.gz'
-
- - name: Get hdf5 release osx12
- continue-on-error: true
- if: ${{ (inputs.use_environ == 'release') }}
- uses: dsaltares/fetch-gh-release-asset@master
- with:
- repo: 'HDFGroup/hdf5'
- version: 'tags/${{ inputs.use_hdf5 }}'
- file: '${{ inputs.name_hdf5 }}-osx12.tar.gz'
+ file: '${{ inputs.name_hdf5 }}-macos14_clang.tar.gz'
- name: Get hdf5 snapshot
- continue-on-error: true
- if: ${{ (inputs.use_environ == 'snapshots') }}
- uses: dsaltares/fetch-gh-release-asset@master
- with:
- repo: 'HDFGroup/hdf5'
- version: 'tags/snapshot-1.14'
- file: '${{ inputs.name_hdf5 }}-osx.tar.gz'
-
- - name: Get hdf5 snapshot osx12
- continue-on-error: true
if: ${{ (inputs.use_environ == 'snapshots') }}
uses: dsaltares/fetch-gh-release-asset@master
with:
repo: 'HDFGroup/hdf5'
version: 'tags/snapshot-1.14'
- file: '${{ inputs.name_hdf5 }}-osx12.tar.gz'
+ file: '${{ inputs.name_hdf5 }}-macos14_clang.tar.gz'
- name: List files for the space (mac)
run: |
@@ -532,7 +555,7 @@ jobs:
ls ${{ runner.workspace }}
- name: Uncompress gh binary (mac)
- run: tar -zxvf ${{ github.workspace }}/${{ inputs.name_hdf5 }}-osx*.tar.gz
+ run: tar -zxvf ${{ github.workspace }}/${{ inputs.name_hdf5 }}-macos14_clang*.tar.gz
- name: Uncompress hdf5 binary (mac)
run: |
@@ -583,6 +606,7 @@ jobs:
env:
HDFLIBS: ${{ steps.set-hdflib-name.outputs.HDFLIB_ENV }}
HDF5LIBS: ${{ steps.set-hdf5lib-name.outputs.HDF5LIB_ENV }}
+ BINSIGN: ${{ needs.check-secret.outputs.sign-state }}
KEYCHAIN_PASSWD: ${{ secrets.KEYCHAIN_PASSWD }}
KEYCHAIN_NAME: ${{ vars.KEYCHAIN_NAME }}
SIGNER: ${{ vars.SIGNER }}
@@ -607,7 +631,7 @@ jobs:
- name: Save published snapshot binary (mac)
uses: actions/upload-artifact@v4
with:
- name: tgz-osx-binary
+ name: tgz-macos14_clang-binary
path: ${{ github.workspace }}/build/dist/${{ steps.set-file-base.outputs.FILE_BASE }}-Darwin.tar.gz
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
if: ${{ (inputs.use_environ == 'snapshots') }}
@@ -616,7 +640,7 @@ jobs:
- name: Save published release binary (mac)
uses: actions/upload-artifact@v4
with:
- name: tgz-osx-binary
+ name: tgz-macos14_clang-binary
path: ${{ github.workspace }}/build/dist/${{ inputs.snap_name }}-Darwin.tar.gz
if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
if: ${{ (inputs.use_environ == 'release') }}
diff --git a/.github/workflows/daily-build.yml b/.github/workflows/daily-build.yml
index 0e2cb54c..e6bec357 100644
--- a/.github/workflows/daily-build.yml
+++ b/.github/workflows/daily-build.yml
@@ -25,7 +25,7 @@ jobs:
run-ignore: ${{ steps.getinputs.outputs.INPUTS_IGNORE }}
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v4.1.7
- name: Get hdfview release base name
uses: dsaltares/fetch-gh-release-asset@master
@@ -69,13 +69,10 @@ jobs:
- name: Read inputs
id: getinputs
run: |
- echo "INPUTS_IGNORE=${{ ((github.event.inputs.use_ignore == '' && github.event.inputs.use_ignore) || 'ignore') }}" >> $GITHUB_OUTPUT
- echo "INPUTS_ENVIRON=${{ ((github.event.inputs.use_environ == '' && github.event.inputs.use_environ) || 'snapshots') }}" >> $GITHUB_OUTPUT
+ echo "INPUTS_IGNORE=${{ github.event.inputs.use_ignore }}" >> $GITHUB_OUTPUT
- run: echo "use_ignore is ${{ steps.getinputs.outputs.INPUTS_IGNORE }}."
- - run: echo "use_environ is ${{ steps.getinputs.outputs.INPUTS_ENVIRON }}."
-
call-workflow-tarball:
needs: get-base-names
uses: ./.github/workflows/tarball.yml
@@ -93,10 +90,16 @@ jobs:
use_hdf5: ${{ needs.get-base-names.outputs.hdf5-name }}
name_hdf5: ${{ needs.get-base-names.outputs.hdf5-name }}
use_environ: snapshots
- secrets:
- APPLE_CERTS_BASE64: ${{ secrets.APPLE_CERTS_BASE64 }}
- APPLE_CERTS_BASE64_PASSWD: ${{ secrets.APPLE_CERTS_BASE64_PASSWD }}
- KEYCHAIN_PASSWD: ${{ secrets.KEYCHAIN_PASSWD }}
+ secrets:
+ APPLE_CERTS_BASE64: ${{ secrets.APPLE_CERTS_BASE64 }}
+ APPLE_CERTS_BASE64_PASSWD: ${{ secrets.APPLE_CERTS_BASE64_PASSWD }}
+ KEYCHAIN_PASSWD: ${{ secrets.KEYCHAIN_PASSWD }}
+ AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
+ AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
+ AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
+ AZURE_ENDPOINT: ${{ secrets.AZURE_ENDPOINT }}
+ AZURE_CODE_SIGNING_NAME: ${{ secrets.AZURE_CODE_SIGNING_NAME }}
+ AZURE_CERT_PROFILE_NAME: ${{ secrets.AZURE_CERT_PROFILE_NAME }}
call-workflow-ant-app:
needs: [get-base-names, call-workflow-tarball]
@@ -107,10 +110,16 @@ jobs:
use_hdf5: ${{ needs.get-base-names.outputs.hdf5-name }}
name_hdf5: ${{ needs.get-base-names.outputs.hdf5-name }}
use_environ: snapshots
- secrets:
- APPLE_CERTS_BASE64: ${{ secrets.APPLE_CERTS_BASE64 }}
- APPLE_CERTS_BASE64_PASSWD: ${{ secrets.APPLE_CERTS_BASE64_PASSWD }}
- KEYCHAIN_PASSWD: ${{ secrets.KEYCHAIN_PASSWD }}
+ secrets:
+ APPLE_CERTS_BASE64: ${{ secrets.APPLE_CERTS_BASE64 }}
+ APPLE_CERTS_BASE64_PASSWD: ${{ secrets.APPLE_CERTS_BASE64_PASSWD }}
+ KEYCHAIN_PASSWD: ${{ secrets.KEYCHAIN_PASSWD }}
+ AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
+ AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
+ AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
+ AZURE_ENDPOINT: ${{ secrets.AZURE_ENDPOINT }}
+ AZURE_CODE_SIGNING_NAME: ${{ secrets.AZURE_CODE_SIGNING_NAME }}
+ AZURE_CERT_PROFILE_NAME: ${{ secrets.AZURE_CERT_PROFILE_NAME }}
call-workflow-release:
needs: [get-base-names, call-workflow-tarball, call-workflow-ant, call-workflow-ant-app]
@@ -133,5 +142,5 @@ jobs:
file_base: ${{ needs.get-base-names.outputs.hdfview-name }}
use_tag: HDFView-3.3.99
use_environ: snapshots
- if: ${{ ((needs.call-workflow-tarball.outputs.has_changes == 'true') || (needs.get-base-names.outputs.run-ignore == 'ignore')) }}
+ if: ${{ ((needs.call-workflow-tarball.outputs.has_changes == 'true') || (needs.get-base-names.outputs.run-ignore == 'ignore')) && (needs.get-base-names.outputs.hdfview-name != needs.call-workflow-tarball.outputs.file_base) }}
diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml
index f7ba4cf1..ebc1142d 100644
--- a/.github/workflows/publish-release.yml
+++ b/.github/workflows/publish-release.yml
@@ -12,8 +12,9 @@ on:
description: 'HDFView target bucket directory'
type: string
required: true
- permissions:
- contents: read
+
+permissions:
+ contents: read
jobs:
publish-tag:
@@ -21,7 +22,7 @@ jobs:
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+ uses: actions/checkout@9a9194f87191a7e9055e3e9b95b8cfb13023bb08 # v4.1.7
with:
fetch-depth: 0
ref: '${{ github.head_ref || github.ref_name }}'
@@ -44,8 +45,13 @@ jobs:
target: 'HDFVIEW/'
file: 'UsersGuide.*'
+ - name: List files for the space
+ run: |
+ ls -l ${{ github.workspace }}
+ ls ${{ github.workspace }}/HDFVIEW
+
- name: Setup AWS CLI
- uses: aws-actions/configure-aws-credentials@v1
+ uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
@@ -56,9 +62,9 @@ jobs:
aws s3 sync ./HDFVIEW s3://${{ secrets.AWS_S3_BUCKET }}/${{ vars.TARGET_PATH }}/${{ inputs.target_dir }}/downloads --delete
- name: Uncompress source (Linux)
- run: tar -zxvf ${{ github.workspace }}/UsersGuide.tar.gz
+ run: tar -zxvf ${{ github.workspace }}/HDFVIEW/UsersGuide.tar.gz
- name: Sync userguide to S3 bucket
run: |
- aws s3 sync ./UsersGuide s3://${{ secrets.AWS_S3_BUCKET }}/${{ vars.TARGET_PATH }}/${{ inputs.target_dir }}/documentation --delete
+ aws s3 sync ./UsersGuide s3://${{ secrets.AWS_S3_BUCKET }}/${{ vars.TARGET_PATH }}/${{ inputs.target_dir }}/documentation/UsersGuide --delete
diff --git a/.github/workflows/release-files.yml b/.github/workflows/release-files.yml
index 8f7a82f3..f77ba094 100644
--- a/.github/workflows/release-files.yml
+++ b/.github/workflows/release-files.yml
@@ -40,7 +40,7 @@ jobs:
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Get Sources
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+ uses: actions/checkout@9a9194f87191a7e9055e3e9b95b8cfb13023bb08 # v4.1.7
with:
fetch-depth: 0
ref: '${{ github.head_ref || github.ref_name }}'
@@ -73,58 +73,58 @@ jobs:
# Get files created by tarball script
- name: Get tgz-tarball (Linux)
- uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
+ uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: tgz-tarball
path: ${{ github.workspace }}
- name: Get zip-tarball (Windows)
- uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
+ uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: zip-tarball
path: ${{ github.workspace }}
# Get files created by ant script
- name: Get published binary (Windows)
- uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
+ uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: zip-win-vs2022-binary
path: ${{ github.workspace }}
- name: Get published binary (MacOS)
- uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
+ uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
- name: tgz-osx-binary
+ name: tgz-macos14_clang-binary
path: ${{ github.workspace }}
- name: Get published binary (Linux)
- uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
+ uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: tgz-ubuntu-2204-binary
path: ${{ github.workspace }}
# Get files created by ant-app script
- name: Get published app binary (Windows)
- uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
+ uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: zip-win-vs2022-app-binary
path: ${{ github.workspace }}
- name: Get published app binary (MacOS)
- uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
+ uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
- name: tgz-osx-app-binary
+ name: tgz-macos14_clang-app-binary
path: ${{ github.workspace }}
- name: Get published app binary (Linux)
- uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
+ uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: tgz-ubuntu-2204-app-binary
path: ${{ github.workspace }}
# Get files created by tarball script
- name: Get UsersGuide (Linux)
- uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
+ uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: docs-usersguide
path: ${{ github.workspace }}/UsersGuide
@@ -160,7 +160,7 @@ jobs:
echo "${{ steps.get-file-base.outputs.FILE_BASE }}" > ./last-file.txt
- name: Get NEWSLETTER
- uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
+ uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: NEWSLETTER
path: ${{ github.workspace }}
@@ -172,7 +172,7 @@ jobs:
- name: PreRelease tag
id: create_prerelease
if: ${{ (inputs.use_environ == 'snapshots') }}
- uses: softprops/action-gh-release@69320dbe05506a9a39fc8ae11030b214ec2d1f87 # v2.0.5
+ uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191 # v2.0.8
with:
tag_name: "${{ inputs.use_tag }}"
prerelease: true
@@ -195,7 +195,7 @@ jobs:
- name: Release tag
id: create_release
if: ${{ (inputs.use_environ == 'release') }}
- uses: softprops/action-gh-release@69320dbe05506a9a39fc8ae11030b214ec2d1f87 # v2.0.5
+ uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191 # v2.0.8
with:
tag_name: "${{ inputs.use_tag }}"
prerelease: false
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 4d38035e..a60866ff 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -28,8 +28,6 @@ on:
permissions:
contents: read
-# A workflow run is made up of one or more jobs that can run sequentially or
-# in parallel.
jobs:
log-the-inputs:
runs-on: ubuntu-latest
@@ -66,10 +64,16 @@ jobs:
name_hdf5: ${{ inputs.name_tag5 }}
snap_name: HDFView-${{ needs.call-workflow-tarball.outputs.source_base }}
use_environ: release
- secrets:
- APPLE_CERTS_BASE64: ${{ secrets.APPLE_CERTS_BASE64 }}
- APPLE_CERTS_BASE64_PASSWD: ${{ secrets.APPLE_CERTS_BASE64_PASSWD }}
- KEYCHAIN_PASSWD: ${{ secrets.KEYCHAIN_PASSWD }}
+ secrets:
+ APPLE_CERTS_BASE64: ${{ secrets.APPLE_CERTS_BASE64 }}
+ APPLE_CERTS_BASE64_PASSWD: ${{ secrets.APPLE_CERTS_BASE64_PASSWD }}
+ KEYCHAIN_PASSWD: ${{ secrets.KEYCHAIN_PASSWD }}
+ AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
+ AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
+ AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
+ AZURE_ENDPOINT: ${{ secrets.AZURE_ENDPOINT }}
+ AZURE_CODE_SIGNING_NAME: ${{ secrets.AZURE_CODE_SIGNING_NAME }}
+ AZURE_CERT_PROFILE_NAME: ${{ secrets.AZURE_CERT_PROFILE_NAME }}
call-workflow-ant-app:
needs: [log-the-inputs, call-workflow-tarball]
@@ -81,10 +85,16 @@ jobs:
name_hdf5: ${{ inputs.name_tag5 }}
snap_name: HDFView-${{ needs.call-workflow-tarball.outputs.source_base }}
use_environ: release
- secrets:
- APPLE_CERTS_BASE64: ${{ secrets.APPLE_CERTS_BASE64 }}
- APPLE_CERTS_BASE64_PASSWD: ${{ secrets.APPLE_CERTS_BASE64_PASSWD }}
- KEYCHAIN_PASSWD: ${{ secrets.KEYCHAIN_PASSWD }}
+ secrets:
+ APPLE_CERTS_BASE64: ${{ secrets.APPLE_CERTS_BASE64 }}
+ APPLE_CERTS_BASE64_PASSWD: ${{ secrets.APPLE_CERTS_BASE64_PASSWD }}
+ KEYCHAIN_PASSWD: ${{ secrets.KEYCHAIN_PASSWD }}
+ AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
+ AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
+ AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
+ AZURE_ENDPOINT: ${{ secrets.AZURE_ENDPOINT }}
+ AZURE_CODE_SIGNING_NAME: ${{ secrets.AZURE_CODE_SIGNING_NAME }}
+ AZURE_CERT_PROFILE_NAME: ${{ secrets.AZURE_CERT_PROFILE_NAME }}
call-workflow-release:
needs: [log-the-inputs, call-workflow-tarball, call-workflow-ant, call-workflow-ant-app]
diff --git a/README.md b/README.md
index 6a257c98..ae10d437 100644
--- a/README.md
+++ b/README.md
@@ -46,9 +46,10 @@ of HDF5 and HDF4. Previous releases of HDFView that were based on HDF5 1.8,
| Release | HDF5 | HDF4 | New Features |
| ------- | ---- | ---- | ------------ |
-| 3.3.0 | 1.14.0 | 4.2.16 | Supports HDF5 1.12 references, Single-Writer/Multiple-Readers (SWMR) reads, bug fixes |
+| 3.3.0 | 1.14.0 | 4.2.16 | HDF5 1.12 (new-style) references, Single-Writer/Multiple-Readers (SWMR) reads, bug fixes |
| 3.3.1 | 1.14.2 | 4.2.16-2 | Fixes a critical HDF4 + HDFView bug |
-| 3.3.2 | 1.14.4 | 4.3.0 | Maintenance release |
+| 3.3.2 | 1.14.4 | 4.3.0 | Float16 support |
+| 3.3.3 | 1.16.0 | 4.4.0 | Complex number support |
PREVIOUS RELEASES AND SOURCE CODE
diff --git a/build.xml b/build.xml
index 799ae62d..3eba4125 100644
--- a/build.xml
+++ b/build.xml
@@ -15,9 +15,9 @@
-
+
-
+
@@ -1370,6 +1370,15 @@
isXMac=${isXMac}
+
+
+
+
+
+
+
+ isSignXMac=${isSignXMac}
+
@@ -1406,9 +1415,21 @@
isXWindows=${isXWindows}
+
+
+
+
+
+
+
+ isSignXWindows=${isSignXWindows}
+
+
+
+
@@ -1416,6 +1437,17 @@
isAppMac=${isAppMac}
+
+
+
+
+
+
+
+
+
+ isSignAppMac=${isSignAppMac}
+
@@ -1453,32 +1485,35 @@
-
-
-
-
-
+
+
-
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -1517,7 +1552,43 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1561,52 +1632,91 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ JXPackage the mac application
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1824,9 +1934,8 @@
-
-
+
+
@@ -1834,7 +1943,7 @@
MAC NOTARY FOR JXPACKAGE
================================================================= -->
-
+
@@ -1864,7 +1973,7 @@
*** notarize-zip-app:${zipUUID} ***
-
+
@@ -1885,7 +1994,7 @@
-
+
@@ -1905,7 +2014,7 @@
-
@@ -1944,6 +2053,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2050,10 +2193,72 @@
JPACKAGE APP-IMAGE
================================================================= -->
-
+ Create the mac jpackage
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2237,7 +2442,7 @@
MAC NOTARY FOR JPACKAGE
================================================================= -->
-
+
@@ -2267,7 +2472,7 @@
*** notarize-app:${retUUID} ***
-
+
@@ -2288,7 +2493,7 @@
-
+
diff --git a/src/org.hdfgroup.hdfview/hdf/view/HDFView.java b/src/org.hdfgroup.hdfview/hdf/view/HDFView.java
index 5663344b..c1c32925 100644
--- a/src/org.hdfgroup.hdfview/hdf/view/HDFView.java
+++ b/src/org.hdfgroup.hdfview/hdf/view/HDFView.java
@@ -2810,7 +2810,7 @@ else if ("-java.version".equalsIgnoreCase(args[i])) {
for (int i = args.length - j; i < args.length; i++) {
tmpFile = new File(args[i]);
if (!tmpFile.isAbsolute())
- tmpFile = new File(rootDir, args[i]);
+ tmpFile = new File(startDir, args[i]);
log.trace("main: filelist - file = {} ", tmpFile.getAbsolutePath());
log.trace("main: filelist - add file = {} exists={} isFile={} isDir={}", tmpFile,
tmpFile.exists(), tmpFile.isFile(), tmpFile.isDirectory());