summaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
authorAllen Byrne <50328838+byrnHDF@users.noreply.github.com>2023-06-30 01:09:29 (GMT)
committerGitHub <noreply@github.com>2023-06-30 01:09:29 (GMT)
commit30da5a24b08e88b49c8f6ff7be1a1d9c50cd98b1 (patch)
tree6eeb6dc72827226a568084d4be285b20e8a78667 /.github
parent36cb3a9e2a5e41d07d789d880198dc95a47f6f05 (diff)
downloadhdf5-30da5a24b08e88b49c8f6ff7be1a1d9c50cd98b1.zip
hdf5-30da5a24b08e88b49c8f6ff7be1a1d9c50cd98b1.tar.gz
hdf5-30da5a24b08e88b49c8f6ff7be1a1d9c50cd98b1.tar.bz2
Hdf5 1 12 release action (#3199)
* Update actions for release option, fix branch for daily build * Scheduled workflows run on latest commit on the develop
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/daily-build.yml11
-rw-r--r--.github/workflows/hdfeos5.yml2
-rw-r--r--.github/workflows/main.yml2
-rw-r--r--.github/workflows/release-files.yml144
-rw-r--r--.github/workflows/release.yml166
-rw-r--r--.github/workflows/tarball.yml43
6 files changed, 240 insertions, 128 deletions
diff --git a/.github/workflows/daily-build.yml b/.github/workflows/daily-build.yml
index 8151781..d371e0e 100644
--- a/.github/workflows/daily-build.yml
+++ b/.github/workflows/daily-build.yml
@@ -3,8 +3,6 @@ name: hdf5 1.12 daily build
# Controls when the action will run. Triggers the workflow on a schedule
on:
workflow_dispatch:
- schedule:
- - cron: "8 0 * * *"
permissions:
contents: read
@@ -14,22 +12,29 @@ permissions:
jobs:
call-workflow-tarball:
uses: ./.github/workflows/tarball.yml
+ with:
+ #use_tag: snapshot-1.12
+ use_environ: snapshots
call-workflow-ctest:
needs: call-workflow-tarball
uses: ./.github/workflows/cmake-ctest.yml
with:
file_base: ${{ needs.call-workflow-tarball.outputs.file_base }}
+ #use_tag: snapshot-1.12
+ #use_environ: snapshots
if: ${{ needs.call-workflow-tarball.outputs.has_changes == 'true' }}
call-workflow-release:
needs: [call-workflow-tarball, call-workflow-ctest]
permissions:
contents: write # In order to allow tag creation
- uses: ./.github/workflows/release.yml
+ 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: snapshot-1.12
+ use_environ: snapshots
if: ${{ needs.call-workflow-tarball.outputs.has_changes == 'true' }}
diff --git a/.github/workflows/hdfeos5.yml b/.github/workflows/hdfeos5.yml
index 0deadc6..9bdce20 100644
--- a/.github/workflows/hdfeos5.yml
+++ b/.github/workflows/hdfeos5.yml
@@ -1,4 +1,4 @@
-name: hdfeos5
+name: hdfeos5 1.12
on:
workflow_dispatch:
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 68c8d9e..e87b627 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -1,4 +1,4 @@
-name: hdf5 dev CI
+name: hdf5 1.12 CI
# Controls when the action will run. Triggers the workflow on push or pull request
on:
diff --git a/.github/workflows/release-files.yml b/.github/workflows/release-files.yml
new file mode 100644
index 0000000..0f483d4
--- /dev/null
+++ b/.github/workflows/release-files.yml
@@ -0,0 +1,144 @@
+name: hdf5 1.12 release
+
+# Controls when the action will run. Triggers the workflow on a schedule
+on:
+ workflow_call:
+ inputs:
+ use_tag:
+ description: 'Release version tag'
+ type: string
+ required: false
+ default: snapshot-1.12
+ use_environ:
+ description: 'Environment to locate files'
+ type: string
+ required: true
+ default: snapshots
+ file_base:
+ description: "The common base name of the source tarballs"
+ required: true
+ type: string
+ file_branch:
+ description: "The branch name for the source tarballs"
+ required: true
+ type: string
+ file_sha:
+ description: "The sha for the source tarballs"
+ required: true
+ type: string
+
+# Minimal permissions to be inherited by any job that doesn't declare its own permissions
+permissions:
+ contents: read
+
+# Previous workflows must pass to get here so tag the commit that created the files
+jobs:
+ create-tag:
+ runs-on: ubuntu-latest
+ permissions:
+ contents: write # In order to allow tag creation
+ steps:
+ # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
+ - name: Get Sources
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+
+ - run: |
+ git checkout ${{ inputs.file_sha }}
+
+ - uses: rickstaa/action-create-tag@v1
+ id: "tag_create"
+ with:
+ commit_sha: ${{ inputs.file_sha }}
+ tag: "${{ inputs.use_tag }}"
+ force_push_tag: true
+ message: "Latest snapshot"
+ if: ${{ inputs.use_environ == 'snapshots' }}
+
+ # Print result using the action output.
+ - run: |
+ echo "Tag already present: ${{ steps.tag_create.outputs.tag_exists }}"
+
+ PreRelease-getfiles:
+ runs-on: ubuntu-latest
+ needs: create-tag
+ environment: ${{ inputs.use_environ }}
+ permissions:
+ contents: write
+ steps:
+ - name: Get file base name
+ id: get-file-base
+ run: |
+ FILE_NAME_BASE=$(echo "${{ inputs.file_base }}")
+ echo "FILE_BASE=$FILE_NAME_BASE" >> $GITHUB_OUTPUT
+
+ # Get files created by tarball script
+ - name: Get doxygen (Linux)
+ uses: actions/download-artifact@v3
+ with:
+ name: docs-doxygen
+ path: ${{ github.workspace }}/${{ steps.get-file-base.outputs.FILE_BASE }}.doxygen
+
+ - name: Zip Folder
+ run: zip -r ${{ steps.get-file-base.outputs.FILE_BASE }}.doxygen.zip ./${{ steps.get-file-base.outputs.FILE_BASE }}.doxygen
+
+ - name: Get tgz-tarball (Linux)
+ uses: actions/download-artifact@v3
+ with:
+ name: tgz-tarball
+ path: ${{ github.workspace }}
+
+ - name: Get zip-tarball (Windows)
+ uses: actions/download-artifact@v3
+ with:
+ name: zip-tarball
+ path: ${{ github.workspace }}
+
+ # Get files created by cmake-ctest script
+ - name: Get published binary (Windows)
+ uses: actions/download-artifact@v3
+ with:
+ name: zip-vs2022-binary
+ path: ${{ github.workspace }}
+
+ - name: Get published binary (MacOS)
+ uses: actions/download-artifact@v3
+ with:
+ name: tgz-osx12-binary
+ path: ${{ github.workspace }}
+
+ - name: Get published binary (Linux)
+ uses: actions/download-artifact@v3
+ with:
+ name: tgz-ubuntu-2204-binary
+ path: ${{ github.workspace }}
+
+ - name: PreRelease tag
+ id: create_release
+ uses: softprops/action-gh-release@v1
+ with:
+ tag_name: "${{ inputs.use_tag }}"
+ prerelease: true
+ files: |
+ ${{ steps.get-file-base.outputs.FILE_BASE }}.doxygen.zip
+ ${{ steps.get-file-base.outputs.FILE_BASE }}.tar.gz
+ ${{ steps.get-file-base.outputs.FILE_BASE }}.zip
+ ${{ steps.get-file-base.outputs.FILE_BASE }}-osx12.tar.gz
+ ${{ steps.get-file-base.outputs.FILE_BASE }}-ubuntu-2204.tar.gz
+ ${{ steps.get-file-base.outputs.FILE_BASE }}-win_vs2022.zip
+ if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
+
+ - name: Store Release url
+ run: |
+ echo "${{ steps.create_release.outputs.upload_url }}" > ./upload_url
+
+# - uses: actions/upload-artifact@v3
+# with:
+# path: ./upload_url
+# name: upload_url
+
+ - name: List files for the space (Linux)
+ run: |
+ ls -l ${{ github.workspace }}
+ ls ${{ runner.workspace }}
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 8e3824f..26c08a9 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -1,133 +1,63 @@
-name: hdf5 1.12 release
+name: hdf5 1.12 release build
-# Controls when the action will run. Triggers the workflow on a schedule
+# Controls when the action will run. Triggers the workflow on a manual run
on:
- workflow_call:
+ workflow_dispatch:
inputs:
- file_base:
- description: "The common base name of the source tarballs"
- required: true
- type: string
- file_branch:
- description: "The branch name for the source tarballs"
- required: true
+ use_tag:
+ description: 'Release version tag'
type: string
- file_sha:
- description: "The sha for the source tarballs"
+ required: false
+ default: snapshot-1.12
+ use_environ:
+ description: 'Environment to locate files'
+ type: choice
required: true
- type: string
+ default: snapshots
+ options:
+ - snapshots
+ - release
-# Minimal permissions to be inherited by any job that doesn't declare its own permissions
permissions:
contents: read
-# Previous workflows must pass to get here so tag the commit that created the files
+# A workflow run is made up of one or more jobs that can run sequentially or
+# in parallel.
jobs:
- create-tag:
+ log-the-inputs:
runs-on: ubuntu-latest
- permissions:
- contents: write # In order to allow tag creation
steps:
- # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- - name: Get Sources
- uses: actions/checkout@v3
- with:
- fetch-depth: 0
-
- run: |
- git checkout ${{ inputs.file_sha }}
-
- - uses: rickstaa/action-create-tag@v1
- id: "tag_create"
- with:
- commit_sha: ${{ inputs.file_sha }}
- tag: "snapshot"
- force_push_tag: true
- message: "Latest snapshot"
-
- # Print result using the action output.
- - run: |
- echo "Tag already present: ${{ steps.tag_create.outputs.tag_exists }}"
-
- PreRelease-getfiles:
- runs-on: ubuntu-latest
- needs: create-tag
- environment: snapshots_1_12
+ echo "Tag: $TAG"
+ echo "Environment: $ENVIRONMENT"
+ env:
+ TAG: ${{ inputs.tag }}
+ ENVIRONMENT: ${{ inputs.environment }}
+
+ call-workflow-tarball:
+ needs: log-the-inputs
+ uses: ./.github/workflows/tarball.yml
+ with:
+ use_tag: ${{ inputs.use_tag }}
+ use_environ: ${{ inputs.use_environ }}
+
+ call-workflow-ctest:
+ needs: call-workflow-tarball
+ uses: ./.github/workflows/cmake-ctest.yml
+ with:
+ file_base: ${{ needs.call-workflow-tarball.outputs.file_base }}
+ use_tag: ${{ inputs.use_tag }}
+ use_environ: ${{ inputs.use_environ }}
+
+ call-workflow-release:
+ needs: [call-workflow-tarball, call-workflow-ctest]
permissions:
- contents: write
- steps:
- - name: Get file base name
- id: get-file-base
- run: |
- FILE_NAME_BASE=$(echo "${{ inputs.file_base }}")
- echo "FILE_BASE=$FILE_NAME_BASE" >> $GITHUB_OUTPUT
-
- # Get files created by tarball script
- - name: Get doxygen (Linux)
- uses: actions/download-artifact@v3
- with:
- name: docs-doxygen
- path: ${{ github.workspace }}
-
- - name: Zip Folder
- run: zip -r ${{ steps.get-file-base.outputs.FILE_BASE }}.doxygen.zip . -i ${{ github.workspace }}/${{ steps.get-file-base.outputs.FILE_BASE }}.doxygen
-
- - name: Get tgz-tarball (Linux)
- uses: actions/download-artifact@v3
- with:
- name: tgz-tarball
- path: ${{ github.workspace }}
-
- - name: Get zip-tarball (Windows)
- uses: actions/download-artifact@v3
- with:
- name: zip-tarball
- path: ${{ github.workspace }}
-
- # Get files created by cmake-ctest script
- - name: Get published binary (Windows)
- uses: actions/download-artifact@v3
- with:
- name: zip-vs2022-binary
- path: ${{ github.workspace }}
-
- - name: Get published binary (MacOS)
- uses: actions/download-artifact@v3
- with:
- name: tgz-osx12-binary
- path: ${{ github.workspace }}
-
- - name: Get published binary (Linux)
- uses: actions/download-artifact@v3
- with:
- name: tgz-ubuntu-2204-binary
- path: ${{ github.workspace }}
-
- - name: PreRelease tag
- id: create_release
- uses: softprops/action-gh-release@v1
- with:
- tag_name: "snapshot_1_12"
- prerelease: true
- files: |
- ${{ steps.get-file-base.outputs.FILE_BASE }}.doxygen.zip
- ${{ steps.get-file-base.outputs.FILE_BASE }}.tar.gz
- ${{ steps.get-file-base.outputs.FILE_BASE }}.zip
- ${{ steps.get-file-base.outputs.FILE_BASE }}-osx12.tar.gz
- ${{ steps.get-file-base.outputs.FILE_BASE }}-ubuntu-2204.tar.gz
- ${{ steps.get-file-base.outputs.FILE_BASE }}-win_vs2022.zip
- if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn`
-
- - name: Store Release url
- run: |
- echo "${{ steps.create_release.outputs.upload_url }}" > ./upload_url
-
-# - uses: actions/upload-artifact@v3
-# with:
-# path: ./upload_url
-# name: upload_url
+ 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: ${{ inputs.use_tag }}
+ use_environ: ${{ inputs.use_environ }}
- - name: List files for the space (Linux)
- run: |
- ls -l ${{ github.workspace }}
- ls ${{ runner.workspace }}
diff --git a/.github/workflows/tarball.yml b/.github/workflows/tarball.yml
index 4a9d0d8..cc9a535 100644
--- a/.github/workflows/tarball.yml
+++ b/.github/workflows/tarball.yml
@@ -3,6 +3,17 @@ name: hdf5 1.12 tarball
# Controls when the action will run. Triggers the workflow on a schedule
on:
workflow_call:
+ inputs:
+# use_tag:
+# description: 'Release version tag'
+# type: string
+# required: false
+# default: snapshot-1.12
+ use_environ:
+ description: 'Environment to locate files'
+ type: string
+ required: true
+ default: snapshots
outputs:
has_changes:
description: "Whether there were changes the previous day"
@@ -55,6 +66,7 @@ jobs:
with:
seconds: 86400 # One day in seconds
branch: '${{ steps.get-branch-name.outputs.branch_ref }}'
+ if: ${{ inputs.use_environ == 'snapshots' }}
- run: echo "You have ${{ steps.check-new-commits.outputs.new-commits-number }} new commit(s) in ${{ steps.get-branch-name.outputs.BRANCH_REF }} ✅!"
if: ${{ steps.check-new-commits.outputs.has-new-commits == 'true' }}
@@ -65,7 +77,7 @@ jobs:
name: Create a source tarball
runs-on: ubuntu-latest
needs: check_commits
- if: ${{ needs.check_commits.outputs.has_changes == 'true' }}
+ if: ${{ ((inputs.use_environ == 'snapshots') && (needs.check_commits.outputs.has_changes == 'true')) || (inputs.use_environ == 'release') }}
outputs:
file_base: ${{ steps.set-file-base.outputs.FILE_BASE }}
steps:
@@ -80,22 +92,43 @@ jobs:
sudo apt update
sudo apt install automake autoconf libtool libtool-bin gzip dos2unix
+ - name: Retrieve version
+ id: version
+ run: |
+ cd "$GITHUB_WORKSPACE/hdfsrc"
+ echo "TAG_VERSION=$(bin/h5vers)" >> $GITHUB_OUTPUT
+
- name: Set file base name
id: set-file-base
run: |
- FILE_NAME_BASE=$(echo "hdf5-${{ needs.check_commits.outputs.branch_ref }}-${{ needs.check_commits.outputs.branch_sha }}")
+ if [[ '${{ inputs.use_environ }}' == 'snapshots' && '${{ needs.check_commits.outputs.has_changes }}' == 'true' ]]
+ then
+ FILE_NAME_BASE=$(echo "hdf5-${{ needs.check_commits.outputs.branch_ref }}-${{ needs.check_commits.outputs.branch_sha }}")
+ else
+ FILE_NAME_BASE=$(echo "hdf5-${{ steps.version.outputs.TAG_VERSION }}")
+ fi
echo "FILE_BASE=$FILE_NAME_BASE" >> $GITHUB_OUTPUT
+ shell: bash
- - name: Run release script
- id: run-release-script
+ - name: Create snapshot file base name
+ id: create-file-base
+ if: ${{ (inputs.use_environ == 'snapshots') && (needs.check_commits.outputs.has_changes == 'true') }}
run: |
cd "$GITHUB_WORKSPACE/hdfsrc"
bin/bbrelease -d $GITHUB_WORKSPACE --branch ${{ needs.check_commits.outputs.branch_ref }} --revision gzip zip
shell: bash
+ - name: Create release file base name
+ id: create-rel-base
+ if: ${{ (inputs.use_environ == 'release') }}
+ run: |
+ cd "$GITHUB_WORKSPACE/hdfsrc"
+ bin/release -d $GITHUB_WORKSPACE gzip zip cmake-tgz cmake-zip
+ shell: bash
+
- name: List files in the repository
run: |
- ls ${{ github.workspace }}
+ ls -l ${{ github.workspace }}
ls $GITHUB_WORKSPACE
# Save files created by release script