Skip to content

Commit

Permalink
adding shared library workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
edwardhartnett committed Oct 2, 2023
1 parent 9e5b50d commit a3cfe95
Show file tree
Hide file tree
Showing 2 changed files with 182 additions and 8 deletions.
9 changes: 1 addition & 8 deletions .github/workflows/Linux_options.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,6 @@ jobs:
- {
options: "-DBUILD_WITH_W3EMC=OFF -DCMAKE_BUILD_TYPE=Debug"
}
- {
options: "-DENABLE_SHARED=ON"
}

steps:

Expand Down Expand Up @@ -177,11 +174,7 @@ jobs:
run: |
cd $GITHUB_WORKSPACE/g2/build
make install
if [ "${{ matrix.config.options }}" = "-DENABLE_SHARED=ON" ]; then
ls -l ~/g2/install/lib*.so || exit 1
else
ls -l ~/g2/install/lib*.a || exit 1
fi
ls -l ~/g2/install/lib*.a || exit 1
Expand Down
181 changes: 181 additions & 0 deletions .github/workflows/Linux_shared.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,181 @@
# This is a GitHub actions workflow for NCEPLIBS-g2.
#
# This builds the develop branch different options for shared library builds.
#
# Ed Hartnett, 10/2/23
name: Linux_shared
on:
push:
branches:
- develop
pull_request:
branches:
- develop

jobs:
Linux_options:
runs-on: ubuntu-latest
env:
FC: gfortran
CC: gcc
LD_LIBRARY_PATH: /home/runner/jasper/lib
strategy:
# fail-fast: true
matrix:
bacio-version: [2.6.0]
w3emc-version: [2.11.0]
config:
- {
options: "-DCMAKE_BUILD_TYPE=Debug"
}
- {
options: '-DCMAKE_C_Fortran_FLAGS="-g" -DLOGGING=ON'
}
- {
options: "-DCMAKE_BUILD_TYPE=Debug"
}
- {
options: "-DBUILD_WITH_W3EMC=OFF"
}
- {
options: "-DBUILD_WITH_W3EMC=OFF -DCMAKE_BUILD_TYPE=Debug"
}

steps:

- name: install-dependencies
run: |
sudo apt-get update
sudo apt-get install libpng-dev zlib1g-dev libjpeg-dev
- name: cache-bacio
id: cache-bacio
uses: actions/cache@v3
with:
path: ~/bacio
key: bacio-${{ runner.os }}-${{ matrix.bacio-version }}

- name: checkout-bacio
if: steps.cache-bacio.outputs.cache-hit != 'true'
uses: actions/checkout@v3
with:
repository: NOAA-EMC/NCEPLIBS-bacio
path: bacio
ref: v${{ matrix.bacio-version }}

- name: build-bacio
if: steps.cache-bacio.outputs.cache-hit != 'true'
run: |
cd bacio
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=~/bacio -DENABLE_SHARED=ON ..
make -j2
make install
- name: cache-w3emc
id: cache-w3emc
uses: actions/cache@v3
with:
path: ~/w3emc
key: w3emc-${{ runner.os }}-${{ matrix.w3emc-version }}-${{ matrix.bacio-version }}

- name: checkout-w3emc
if: steps.cache-w3emc.outputs.cache-hit != 'true'
uses: actions/checkout@v3
with:
repository: NOAA-EMC/NCEPLIBS-w3emc
path: w3emc
ref: v${{ matrix.w3emc-version }}

- name: build-w3emc
if: steps.cache-w3emc.outputs.cache-hit != 'true'
run: |
cd w3emc
mkdir build
cd build
cmake -DCMAKE_PREFIX_PATH=~/bacio -DCMAKE_INSTALL_PREFIX=~/w3emc -DBUILD_WITH_BUFR=OFF -DENABLE_SHARED=ON -DBUILD_WITH_EXTRA_DEPS=OFF ..
make -j2
make install
- name: cache-jasper
id: cache-jasper
uses: actions/cache@v3
with:
path: ~/jasper
key: jasper-${{ runner.os }}-4.0.0

- name: checkout-jasper
if: steps.cache-jasper.outputs.cache-hit != 'true'
uses: actions/checkout@v3
with:
repository: jasper-software/jasper
path: jasper
ref: version-4.0.0

- name: build-jasper
if: steps.cache-jasper.outputs.cache-hit != 'true'
run: |
cd jasper
mkdir build-jasper && cd build-jasper
cmake -DCMAKE_INSTALL_PREFIX=~/jasper -DENABLE_SHARED=ON ..
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 -DJasper_ROOT=~/jasper -DENABLE_SHARED=ON ..
make -j2
make install
- name: checkout
uses: actions/checkout@v3
with:
path: g2

- name: cache-data
id: cache-data
uses: actions/cache@v3
with:
path: ~/data
key: data-4

- name: build
run: |
set -x
cd g2
mkdir build
cd build
cmake ${{ matrix.config.options }} -DCMAKE_PREFIX_PATH="~/jasper;~/g2c;~/bacio;~/w3emc" -DCMAKE_INSTALL_PREFIX="~/g2/install" -DFTP_TEST_FILES=ON -DTEST_FILE_DIR=/home/runner/data -DENABLE_SHARED=ON ..
make -j2 VERBOSE=1
- name: cache-data
if: steps.cache-data.outputs.cache-hit != 'true'
run: |
mkdir ~/data
cp $GITHUB_WORKSPACE/g2/build/tests/data/* ~/data
- name: test
run: |
cd $GITHUB_WORKSPACE/g2/build
ctest --verbose --rerun-failed --output-on-failure
- name: check_install
run: |
cd $GITHUB_WORKSPACE/g2/build
make install
ls -l ~/g2/install/lib*.so || exit 1

0 comments on commit a3cfe95

Please sign in to comment.