Skip to content

Update package.py

Update package.py #373

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.
#
# Ed Hartnett 1/9/23
name: developer
on:
push:
branches:
- develop
pull_request:
branches:
- develop
jobs:
developer:
runs-on: ubuntu-latest
env:
FC: gfortran-11
CC: gcc-11
strategy:
fail-fast: true
matrix:
g2-branch: [develop, v3.4.7]
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@v2
with:
repository: jasper-software/jasper
path: jasper
ref: version-2.0.32
- name: cache-jasper
id: cache-jasper
uses: actions/cache@v3
with:
path: ~/jasper
key: jasper-${{ runner.os }}-2.0.32
- 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@v2
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-sp
uses: actions/checkout@v2
with:
repository: NOAA-EMC/NCEPLIBS-sp
path: sp
ref: develop
- name: build-sp
run: |
cd sp
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=~/sp ..
make -j2
make install
- name: checkout-w3emc
uses: actions/checkout@v2
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 ..
make -j2
make install
- name: checkout-ip
uses: actions/checkout@v2
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 -DCMAKE_PREFIX_PATH=~/sp ..
make -j2
make install
- name: checkout-g2c
uses: actions/checkout@v2
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" ..
make -j2
make install
- name: checkout-g2
uses: actions/checkout@v2
with:
repository: NOAA-EMC/NCEPLIBS-g2
path: g2
ref: ${{ matrix.g2-branch }}
- 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@v2
with:
path: grib_utils
- 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 -DENABLE_DOCS=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH="~/bacio;~/jasper;~/sp;~/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: 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