Skip to content

Fix Spack.yml CI (needs +tests variant for g2c dep) #592

Fix Spack.yml CI (needs +tests variant for g2c dep)

Fix Spack.yml CI (needs +tests variant for g2c dep) #592

Workflow file for this run

# This is a GitHub actions CI workflow for the NCEPLIBS-grib_util
# project.
#
# This workflow tests the build as a developer would do it, with
# address sanitizer and documentation build, and also memcheck build.
#
# Ed Hartnett 1/9/23
name: developer
on:
push:
branches:
- develop
pull_request:
branches:
- develop
jobs:
developer:
runs-on: ubuntu-latest
env:
FC: gfortran
CC: gcc
steps:
- name: install-dependencies
run: |
sudo apt-get update &> /dev/null
sudo apt-get install libpng-dev
sudo apt-get install libjpeg-dev doxygen gcovr
- name: checkout-jasper
uses: actions/checkout@v3
with:
repository: jasper-software/jasper
path: jasper
ref: version-4.0.0
- name: cache-jasper
id: cache-jasper
uses: actions/cache@v3
with:
path: ~/jasper
key: jasper-${{ runner.os }}-4.0.0-111
- name: build-jasper
if: steps.cache-jasper.outputs.cache-hit != 'true'
run: |
cd jasper
mkdir b && cd b
cmake -DCMAKE_INSTALL_PREFIX=~/jasper ..
make -j2
make install
- name: checkout-bacio
uses: actions/checkout@v3
with:
repository: NOAA-EMC/NCEPLIBS-bacio
path: bacio
ref: develop
- name: build-bacio
run: |
cd bacio
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=~/bacio ..
make -j2
make install
- name: checkout-w3emc
uses: actions/checkout@v3
with:
repository: NOAA-EMC/NCEPLIBS-w3emc
path: w3emc
ref: develop
- name: build-w3emc
run: |
cd w3emc
mkdir build
cd build
cmake -DCMAKE_PREFIX_PATH=~/bacio -DCMAKE_INSTALL_PREFIX=~/w3emc -DBUILD_WITH_BUFR=OFF -DBUILD_WITH_EXTRA_DEPS=ON ..
make -j2
make install
- name: checkout-ip
uses: actions/checkout@v3
with:
repository: NOAA-EMC/NCEPLIBS-ip
path: ip
ref: develop
- name: build-ip
run: |
cd ip
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=~/ip ..
make -j2
make install
- name: checkout-g2c
uses: actions/checkout@v3
with:
repository: NOAA-EMC/NCEPLIBS-g2c
path: g2c
ref: develop
- name: build-g2c
run: |
cd g2c
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=~/g2c -DCMAKE_PREFIX_PATH="~/jasper" -DBUILD_G2C=ON ..
make -j2
make install
- name: checkout-g2
uses: actions/checkout@v3
with:
repository: NOAA-EMC/NCEPLIBS-g2
path: g2
ref: develop
- name: build-g2
run: |
cd g2
mkdir build
cd build
echo $LD_LIBRARY_PATH
export PATH="~/g2c/bin:$PATH"
pwd
cmake -DCMAKE_INSTALL_PREFIX=~/g2 -DCMAKE_PREFIX_PATH="~/bacio;~/jasper;~/w3emc;~/g2c" ..
make -j2
make install
- name: checkout-grib_utils
uses: actions/checkout@v3
with:
path: grib_utils
- name: cache-data
id: cache-data
uses: actions/cache@v4
with:
path: ~/data
key: data-developer-1
- name: build-grib_utils
run: |
cd grib_utils
mkdir build && cd build
ls -l ~/jasper/lib
export LD_LIBRARY_PATH=/home/runner/jasper/lib
export PATH="~/g2c/bin:$PATH"
cmake -DFTP_LARGE_TEST_FILES=ON -DFTP_TEST_FILES=ON -DTEST_FILE_DIR=/home/runner/data -DENABLE_DOCS=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH="~/bacio;~/jasper;~/ip;~/w3emc;~/g2;~/g2c" -DCMAKE_Fortran_FLAGS="-fprofile-arcs -ftest-coverage -O0 -Wall" -DCMAKE_C_FLAGS="-fprofile-arcs -ftest-coverage -O0 -Wall" -DG2C_COMPARE=ON ..
make -j2 VERBOSE=1
ctest --output-on-failure --rerun-failed --verbose
- name: cache-data
if: steps.cache-data.outputs.cache-hit != 'true'
run: |
mkdir ~/data
cp $GITHUB_WORKSPACE/grib_utils/build/tests/data/* ~/data
- name: generate-test-coverage
run: |
cd grib_utils/build
gcovr --root .. -v --html-details --exclude ../tests --exclude CMakeFiles --print-summary -o test-coverage.html
- uses: actions/upload-artifact@v2
with:
name: grib_utils-test-coverage
path: |
grib_utils/build/*.html
grib_utils/build/*.css