name: hdf4 dev release build

# Triggers the workflow on demand
on:
  workflow_dispatch:
    inputs:
      use_tag:
        description: 'Release version tag'
        type: string
        required: false
        default: snapshot

permissions:
  contents: read

jobs:
  log-the-inputs:
    runs-on: ubuntu-latest
    outputs:
      rel_tag: ${{ steps.get-tag-name.outputs.RELEASE_TAG }}
    steps:
    - name: Get tag name
      id: get-tag-name
      env:
        TAG: ${{ inputs.use_tag }}
      run: echo "RELEASE_TAG=$TAG" >> $GITHUB_OUTPUT

  call-workflow-tarball:
    needs: log-the-inputs
    uses: ./.github/workflows/tarball.yml
    with:
      use_tag: ${{ needs.log-the-inputs.outputs.rel_tag }}
      use_environ: release

  call-workflow-ctest:
    needs: call-workflow-tarball
    uses: ./.github/workflows/cmake-ctest.yml
    with:
      preset_name: ci-StdShar
      file_base: ${{ needs.call-workflow-tarball.outputs.file_base }}
      snap_name: hdf-${{ 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 }}
        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-abi:
    needs: [log-the-inputs, call-workflow-tarball, call-workflow-ctest]
    uses: ./.github/workflows/abi-report.yml
    with:
      file_ref: '4.3.0'
      file_base: ${{ needs.call-workflow-tarball.outputs.file_base }}
      use_tag: ${{ needs.log-the-inputs.outputs.rel_tag }}
      use_environ: release

  call-workflow-release:
    needs: [log-the-inputs, call-workflow-tarball, call-workflow-ctest, call-workflow-abi]
    permissions:
      contents: write # In order to allow tag creation
    uses: ./.github/workflows/release-files.yml
    with:
      file_base: ${{ needs.call-workflow-tarball.outputs.file_base }}
      file_branch: ${{ needs.call-workflow-tarball.outputs.file_branch }}
      file_sha: ${{ needs.call-workflow-tarball.outputs.file_sha }}
      use_tag: ${{ needs.log-the-inputs.outputs.rel_tag }}
      use_environ: release

