Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

developing CI system #37

Closed
wants to merge 29 commits into from
Closed
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
5bcd900
developing CI system
edhartnett Jun 23, 2023
5959719
working on workflow for CI
edhartnett Jun 23, 2023
ddb3e19
working on workflow for CI
edhartnett Jun 23, 2023
28eb462
working on workflow for CI
edhartnett Jun 23, 2023
9a40906
working on workflow for CI
edhartnett Jun 23, 2023
a110e72
working on workflow for CI
edhartnett Jun 23, 2023
a971cca
working on workflow for CI
edhartnett Jun 23, 2023
416cee6
working on workflow for CI
edhartnett Jun 23, 2023
ca301b6
working on workflow for CI
edhartnett Jun 23, 2023
08e8d59
working on workflow for CI
edhartnett Jun 23, 2023
aee3527
working on workflow for CI
edhartnett Jun 23, 2023
7a69c47
working on workflow for CI
edhartnett Jun 23, 2023
1018d4a
working on workflow for CI
edhartnett Jun 23, 2023
4382baa
working on workflow for CI
edhartnett Jun 23, 2023
d407ff2
working on workflow
edhartnett Jun 23, 2023
f6fb3df
working on workflow
edhartnett Jun 23, 2023
1f3ff42
working on workflow
edhartnett Jun 23, 2023
83c778f
combined caches
edhartnett Jun 23, 2023
6334133
combined caches
edhartnett Jun 23, 2023
49b7e0b
combined caches
edhartnett Jun 23, 2023
f0bc936
combined caches
edhartnett Jun 23, 2023
2f82a55
combined caches
edhartnett Jun 23, 2023
8519d17
more work on CI workflow
edwardhartnett Jun 24, 2023
0a10d5b
more work on CI workflow
edwardhartnett Jun 24, 2023
41e7b1e
all dependencies now pesent?
edwardhartnett Jun 24, 2023
71df740
all dependencies now pesent?
edwardhartnett Jun 24, 2023
a753067
all dependencies now pesent?
edwardhartnett Jun 24, 2023
69d48e9
all dependencies now pesent?
edwardhartnett Jun 24, 2023
b9eeff4
all dependencies now pesent?
edwardhartnett Jun 24, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
341 changes: 315 additions & 26 deletions .github/workflows/developer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,66 +22,355 @@ jobs:

strategy:
fail-fast: true
matrix:
jasper-version: [4.0.0]
bacio-version: [2.4.1]
sigio-version: [2.3.2]
sfcio-version: [1.4.1]
nemsio-version: [2.5.4]
sp-version: [2.3.3]
ip-version: [3.3.3]
w3nco-version: [2.4.1]
w3emc-version: [2.10.0]
g2-version: [3.4.5]
g2tmpl-version: [1.10.2]
wrf_io-version: [1.2.0]
ncio-version: [1.1.2]
bufr-version: [11.7.1]
GSI-ncdiag-version: [1.1.1]

steps:

- name: install-dependencies
run: |
sudo apt-get update
sudo apt-get install libpng-dev zlib1g-dev libjpeg-dev doxygen gcovr
sudo apt-get install libmpich-dev libpng-dev zlib1g-dev libjpeg-dev libnetcdf-dev libnetcdff-dev netcdf-bin pkg-config gcovr

- name: cache-deps
id: cache-deps
uses: actions/cache@v2
with:
path: ~/deps
key: deps-${{ matrix.jasper-version }}-5

- name: checkout-jasper
if: steps.cache-deps.outputs.cache-hit != 'true'
uses: actions/checkout@v2
with:
repository: jasper-software/jasper
path: jasper
ref: version-${{ matrix.jasper-version }}

- name: build-jasper
if: steps.cache-deps.outputs.cache-hit != 'true'
run: |
cd jasper
mkdir b && cd b
cmake -DCMAKE_INSTALL_PREFIX=~/deps -DBUILD_TESTING=OFF ..
make -j2
make install

- name: checkout-bacio
uses: actions/checkout@v3
if: steps.cache-deps.outputs.cache-hit != 'true'
uses: actions/checkout@v2
with:
repository: NOAA-EMC/NCEPLIBS-bacio
path: bacio
ref: develop

ref: v${{ matrix.bacio-version }}
- name: build-bacio
if: steps.cache-deps.outputs.cache-hit != 'true'
run: |
cd bacio
mkdir build && cd build
cmake -DBUILD_TESTING=OFF -DCMAKE_INSTALL_PREFIX=~/deps ..
make -j2
make install

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

- name: build-sigio
if: steps.cache-deps.outputs.cache-hit != 'true'
run: |
cd sigio
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=~/deps -DBUILD_TESTING=OFF ..
make -j2
make install

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

- name: build-sfcio
if: steps.cache-deps.outputs.cache-hit != 'true'
run: |
cd sfcio
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=~/deps -DBUILD_TESTING=OFF ..
make -j2
make install

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

- name: build-sp
if: steps.cache-deps.outputs.cache-hit != 'true'
run: |
cd sp
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=~/bacio
cmake -DCMAKE_INSTALL_PREFIX=~/deps -DBUILD_TESTING=OFF ..
make -j2
make install


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

- name: build-ip
if: steps.cache-deps.outputs.cache-hit != 'true'
run: |
cd ip
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=~/deps -DCMAKE_PREFIX_PATH=~/deps -DBUILD_TESTING=OFF ..
make -j2
make install

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

- name: build-w3nco
if: steps.cache-deps.outputs.cache-hit != 'true'
run: |
cd w3nco
mkdir build
cd build
cmake -DCMAKE_PREFIX_PATH=~/deps -DCMAKE_INSTALL_PREFIX=~/deps -DBUILD_TESTING=OFF ..
make -j2
make install

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

- name: build-w3emc
if: steps.cache-deps.outputs.cache-hit != 'true'
run: |
cd w3emc
mkdir build
cd build
cmake -DCMAKE_PREFIX_PATH=~/bacio -DCMAKE_INSTALL_PREFIX=~/w3emc -DBUILD_WITH_BUFR=OFF ..
cmake -DCMAKE_PREFIX_PATH=~/deps -DCMAKE_INSTALL_PREFIX=~/deps -DBUILD_WITH_BUFR=OFF -DBUILD_TESTING=OFF ..
make -j2
make install

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

- name: build-g2
if: steps.cache-deps.outputs.cache-hit != 'true'
run: |
cd g2
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=~/deps -DCMAKE_PREFIX_PATH=~/deps -DBUILD_TESTING=OFF ..
make -j2
make install

- name: cache-jasper
id: cache-jasper
uses: actions/cache@v3
- name: checkout-g2tmpl
if: steps.cache-deps.outputs.cache-hit != 'true'
uses: actions/checkout@v2
with:
path: ~/Jasper
key: jasper-${{ runner.os }}-3.0.3
repository: NOAA-EMC/NCEPLIBS-g2tmpl
path: g2tmpl
ref: v${{ matrix.g2tmpl-version }}

- name: checkout-jasper
if: steps.cache-jasper.outputs.cache-hit != 'true'
uses: actions/checkout@v3
- name: build-g2tmpl
if: steps.cache-deps.outputs.cache-hit != 'true'
run: |
cd g2tmpl
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=~/deps -DBUILD_TESTING=OFF ..
make -j2
make install

- name: checkout-nemsio
if: steps.cache-deps.outputs.cache-hit != 'true'
uses: actions/checkout@v2
with:
repository: jasper-software/jasper
path: jasper
ref: version-3.0.3
repository: NOAA-EMC/NCEPLIBS-nemsio
path: nemsio
ref: v${{ matrix.nemsio-version }}

- name: build-nemsio
if: steps.cache-deps.outputs.cache-hit != 'true'
run: |
cd nemsio
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=~/deps -DCMAKE_PREFIX_PATH=~/deps -DBUILD_TESTING=OFF ..
make -j2
make install

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

- name: build-wrf_io
if: steps.cache-deps.outputs.cache-hit != 'true'
run: |
cd jasper
mkdir build-jasper && cd build-jasper
cmake .. -DCMAKE_INSTALL_PREFIX=~/Jasper
cd wrf_io
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=~/deps -DBUILD_TESTING=OFF ..
make -j2
make install

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

- name: build-ncio
if: steps.cache-deps.outputs.cache-hit != 'true'
run: |
cd ncio
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=~/deps -DBUILD_TESTING=OFF ..
make -j2
make install

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

- name: build-bufr
if: steps.cache-deps.outputs.cache-hit != 'true'
run: |
cd bufr
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=~/deps -DBUILD_TESTING=OFF ..
make -j2
make install

- name: cache-deps2
id: cache-deps2
uses: actions/cache@v2
with:
path: ~/deps2
key: deps2-${{ matrix.jasper-version }}-2

- name: checkout-GSI-ncdiag
if: steps.cache-deps.outputs.cache-hit != 'true'
uses: actions/checkout@v2
with:
repository: NOAA-EMC/GSI-ncdiag
path: gsi-ncdiag
ref: v${{ matrix.GSI-ncdiag-version }}

- name: build-GSI-ncdiag
if: steps.cache-deps.outputs.cache-hit != 'true'
run: |
cd gsi-ncdiag
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=~/deps2 -DCMAKE_PREFIX_PATH=~/deps ..
make -j2
make install

- name: checkout-EMC_crtm
if: steps.cache-deps.outputs.cache-hit != 'true'
uses: actions/checkout@v2
with:
repository: NOAA-EMC/EMC_crtm
path: emc_crtm
ref: v2.3.0

- name: build-EMC_crtm
if: steps.cache-deps.outputs.cache-hit != 'true'
run: |
cd emc_crtm
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=~/deps -DCMAKE_PREFIX_PATH=~/deps -DBUILD_TESTING=OFF ..
make -j2
make install

- name: checkout-GSI
if: steps.cache-deps.outputs.cache-hit != 'true'
uses: actions/checkout@v2
with:
repository: NOAA-EMC/GSI
path: gsi
ref: develop

- name: build-GSI
if: steps.cache-deps.outputs.cache-hit != 'true'
run: |
cd gsi
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=~/deps -DCMAKE_PREFIX_PATH=~/deps2 ..
make -j2
make install

- name: checkout-rrfs_utl
uses: actions/checkout@v2
with:
path: rrfs_utl

- name: build-rrfs_utl
run: |
cd rrfs_utl
mkdir build && cd build
export LD_LIBRARY_PATH=/home/runner/deps/lib
export PATH="~/deps/bin:$PATH"
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH="~/deps;~/deps2" -DCMAKE_Fortran_FLAGS="-fprofile-arcs -ftest-coverage -O0 -Wall" -DCMAKE_C_FLAGS="-fprofile-arcs -ftest-coverage -O0 -Wall" ..
make -j2 VERBOSE=1