From 700ee513c21b45a28c77282851ed505ffd41fdca Mon Sep 17 00:00:00 2001 From: kgerheiser Date: Mon, 1 Mar 2021 10:26:26 -0500 Subject: [PATCH 01/11] Report test coverage using gcovr The workflow uploads test-coverage.html and stores it as an artifact which can be manually downloaded on the Actions page. --- ...smf-8.0.1_jasper-2.0.22_nceplibs-1.3.0.yml | 5 ---- ...f-8.0.1_jasper-2.0.22_nceplibs-develop.yml | 26 ++++++++++++++----- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-1.3.0.yml b/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-1.3.0.yml index 4aee5679a..7252cd039 100644 --- a/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-1.3.0.yml +++ b/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-1.3.0.yml @@ -125,9 +125,4 @@ jobs: cmake .. -DCMAKE_PREFIX_PATH='~;~/jasper;~/nceplibs' -DENABLE_DOCS=On make -j2 make test - - - - - diff --git a/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml b/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml index 083bd389f..6c12a2686 100644 --- a/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml +++ b/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml @@ -34,6 +34,8 @@ jobs: sudo ln -sf /usr/local/bin/gfortran-10 /usr/local/bin/gfortran fi fi + export PATH="~/.local/bin:$PATH" + python3 -m pip install gcovr - name: cache-esmf id: cache-esmf @@ -88,19 +90,28 @@ jobs: make -j2 make install + - name: checkout-nceplibs uses: actions/checkout@v2 with: repository: NOAA-EMC/NCEPLIBS path: nceplibs + + - name: cache-nceplibs-develop + id: cache-nceplibs-develop + uses: actions/cache@v2 + with: + path: ~/nceplibs + key: nceplibs-develop-${{ runner.os }}-${{ hashFiles('nceplibs/VERSION') }} - name: build-nceplibs + if: steps.cache-nceplibs-develop.outputs.cache-hit != 'true' run: | set -x export ESMFMKFILE=~/esmf/lib/esmf.mk cd nceplibs mkdir build && cd build - cmake .. -DCMAKE_PREFIX_PATH='~;~/jasper' -DCMAKE_INSTALL_PREFIX='~' -DFLAT=ON + cmake .. -DCMAKE_PREFIX_PATH='~;~/jasper' -DCMAKE_INSTALL_PREFIX='~/nceplibs' -DFLAT=ON make -j2 - name: checkout-ufs-utils @@ -113,12 +124,13 @@ jobs: export ESMFMKFILE=~/esmf/lib/esmf.mk cd ufs_utils mkdir build && cd build - cmake .. -DCMAKE_PREFIX_PATH='~;~/jasper' -DENABLE_DOCS=On + cmake .. -DCMAKE_PREFIX_PATH='~/jasper;~/nceplibs' -DENABLE_DOCS=On -DCMAKE_Fortran_FLAGS="-g -fprofile-arcs -ftest-coverage -O0" make -j2 make test + export PATH="/home/runner/.local/bin:$PATH" + gcovr -r .. --html -o test-coverage.html - - - - - + - uses: actions/upload-artifact@v2 + with: + name: test-coverage + path: ufs_utils/build/test-coverage.html From ed15f180c2c66e459ba23f2b1130f524019ea244 Mon Sep 17 00:00:00 2001 From: kgerheiser Date: Tue, 2 Mar 2021 16:18:05 -0500 Subject: [PATCH 02/11] Upload artifact with OS name --- .github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml b/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml index 6c12a2686..10db798e9 100644 --- a/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml +++ b/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml @@ -133,4 +133,4 @@ jobs: - uses: actions/upload-artifact@v2 with: name: test-coverage - path: ufs_utils/build/test-coverage.html + path: ufs_utils/build/test-coverage-${{ matrix.os }}.html From 41e57caadbcfe57e967754eb7a0a55604054a8c1 Mon Sep 17 00:00:00 2001 From: kgerheiser Date: Tue, 2 Mar 2021 16:29:44 -0500 Subject: [PATCH 03/11] Fix file name --- .github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml b/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml index 10db798e9..c587fe6d0 100644 --- a/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml +++ b/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml @@ -128,7 +128,7 @@ jobs: make -j2 make test export PATH="/home/runner/.local/bin:$PATH" - gcovr -r .. --html -o test-coverage.html + gcovr -r .. --html -o test-coverage-${{ matrix.os }}.html - uses: actions/upload-artifact@v2 with: From 6dc27b3188d1fc5b135ce59a6e5ef99495fae1f8 Mon Sep 17 00:00:00 2001 From: kgerheiser Date: Tue, 2 Mar 2021 16:51:21 -0500 Subject: [PATCH 04/11] Conditionally output test coverage if on Linux --- .../workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml b/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml index c587fe6d0..e7b89fd61 100644 --- a/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml +++ b/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml @@ -128,9 +128,10 @@ jobs: make -j2 make test export PATH="/home/runner/.local/bin:$PATH" - gcovr -r .. --html -o test-coverage-${{ matrix.os }}.html + gcovr -r .. --html -o test-coverage.html - uses: actions/upload-artifact@v2 with: + if: ${{ matrix.os == 'ubuntu-20.04' }} name: test-coverage - path: ufs_utils/build/test-coverage-${{ matrix.os }}.html + path: ufs_utils/build/test-coverag.html From f37ac002fd1fb18bf905314b8aa09dde4b258c94 Mon Sep 17 00:00:00 2001 From: kgerheiser Date: Tue, 2 Mar 2021 16:52:00 -0500 Subject: [PATCH 05/11] Fix typo --- .github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml b/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml index e7b89fd61..555545dd3 100644 --- a/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml +++ b/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml @@ -134,4 +134,4 @@ jobs: with: if: ${{ matrix.os == 'ubuntu-20.04' }} name: test-coverage - path: ufs_utils/build/test-coverag.html + path: ufs_utils/build/test-coverage.html From df5c001677eec49ec62ad04be5bfb47a7f72b13f Mon Sep 17 00:00:00 2001 From: kgerheiser Date: Wed, 3 Mar 2021 09:15:29 -0500 Subject: [PATCH 06/11] Fix conditional syntax --- .github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml b/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml index 555545dd3..40a37e200 100644 --- a/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml +++ b/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml @@ -131,7 +131,7 @@ jobs: gcovr -r .. --html -o test-coverage.html - uses: actions/upload-artifact@v2 + if: ${{ matrix.os == 'ubuntu-20.04' }} with: - if: ${{ matrix.os == 'ubuntu-20.04' }} name: test-coverage path: ufs_utils/build/test-coverage.html From 026817d25d7720eb92556b6ea75e7022fe36ded5 Mon Sep 17 00:00:00 2001 From: kgerheiser Date: Wed, 3 Mar 2021 09:15:51 -0500 Subject: [PATCH 07/11] Properly cache NCEPLIBS --- .github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-1.3.0.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-1.3.0.yml b/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-1.3.0.yml index 7252cd039..8d75c1cf8 100644 --- a/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-1.3.0.yml +++ b/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-1.3.0.yml @@ -103,6 +103,7 @@ jobs: - name: build-nceplibs run: | + if: steps.cache-nceplibs.outputs.cache-hit != 'true' set -x export ESMFMKFILE=~/esmf/lib/esmf.mk wget https://github.com/NOAA-EMC/NCEPLIBS/archive/v1.3.0.tar.gz &> /dev/null From 8075c898cd7be0cf8abe37c9e064254c741037ec Mon Sep 17 00:00:00 2001 From: kgerheiser Date: Wed, 3 Mar 2021 09:19:20 -0500 Subject: [PATCH 08/11] Fix syntax --- .github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-1.3.0.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-1.3.0.yml b/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-1.3.0.yml index 8d75c1cf8..d0021ccbf 100644 --- a/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-1.3.0.yml +++ b/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-1.3.0.yml @@ -102,8 +102,8 @@ jobs: key: nceplibs-${{ runner.os }}-1.3.0 - name: build-nceplibs + if: steps.cache-nceplibs.outputs.cache-hit != 'true' run: | - if: steps.cache-nceplibs.outputs.cache-hit != 'true' set -x export ESMFMKFILE=~/esmf/lib/esmf.mk wget https://github.com/NOAA-EMC/NCEPLIBS/archive/v1.3.0.tar.gz &> /dev/null From fe8c62c11897aad2340fcfe96d8aad69f50f4b53 Mon Sep 17 00:00:00 2001 From: kgerheiser Date: Wed, 3 Mar 2021 09:32:45 -0500 Subject: [PATCH 09/11] Cache NCEPLIBS correctly by using current hash --- .../esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml b/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml index 40a37e200..8688a52e1 100644 --- a/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml +++ b/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml @@ -96,13 +96,18 @@ jobs: with: repository: NOAA-EMC/NCEPLIBS path: nceplibs + + - name: get-git-hash: + run: | + cd nceplibs + git rev-parse HEAD > hash.txt - name: cache-nceplibs-develop id: cache-nceplibs-develop uses: actions/cache@v2 with: path: ~/nceplibs - key: nceplibs-develop-${{ runner.os }}-${{ hashFiles('nceplibs/VERSION') }} + key: nceplibs-develop-${{ runner.os }}-${{ hashFiles('nceplibs/hash.txt') }} - name: build-nceplibs if: steps.cache-nceplibs-develop.outputs.cache-hit != 'true' From 2529fc7e2d055be84385fd3067f72676990b1eea Mon Sep 17 00:00:00 2001 From: kgerheiser Date: Wed, 3 Mar 2021 09:35:51 -0500 Subject: [PATCH 10/11] Fix typo --- .github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml b/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml index 8688a52e1..b84e81e37 100644 --- a/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml +++ b/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml @@ -97,7 +97,7 @@ jobs: repository: NOAA-EMC/NCEPLIBS path: nceplibs - - name: get-git-hash: + - name: get-git-hash run: | cd nceplibs git rev-parse HEAD > hash.txt From a660fca486f37c340d5ff0463cecd015a3cdd5b9 Mon Sep 17 00:00:00 2001 From: kgerheiser Date: Wed, 3 Mar 2021 09:46:52 -0500 Subject: [PATCH 11/11] Test new cache --- .github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml b/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml index b84e81e37..274ef8d23 100644 --- a/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml +++ b/.github/workflows/esmf-8.0.1_jasper-2.0.22_nceplibs-develop.yml @@ -90,7 +90,6 @@ jobs: make -j2 make install - - name: checkout-nceplibs uses: actions/checkout@v2 with: