diff --git a/.github/workflows/Linux_clang.yml b/.github/workflows/Linux_clang.yml new file mode 100644 index 00000000..932d5d08 --- /dev/null +++ b/.github/workflows/Linux_clang.yml @@ -0,0 +1,95 @@ +# This is a GitHub actions workflow for NCEPLIBS-g2. +# +# This builds with clang. +# +# Ed Hartnett, 8/21/24 +name: Linux_clang +on: + push: + branches: + - develop + pull_request: + branches: + - develop + +# Cancel in-progress workflows when pushing to a branch +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + Linux_clang: + runs-on: ubuntu-latest + env: + FC: gfortran + CC: clang + LD_LIBRARY_PATH: /home/runner/work/NCEPLIBS-g2/NCEPLIBS-g2/nceplibs/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: "-DBUILD_WITH_W3EMC=OFF" + } + - { + options: "-DBUILD_UTILS=ON -DBUILD_WITH_W3EMC=OFF" + } + + steps: + + - name: install-dependencies + run: | + sudo apt-get update + sudo apt-get install libpng-dev zlib1g-dev libjpeg-dev clang + + - name: "Build dependencies" + uses: NOAA-EMC/ci-build-nceplibs@develop + with: + bacio-version: v${{ matrix.bacio-version }} + g2c-version: develop + jasper-version: version-4.0.0 + w3emc-version: v${{ matrix.w3emc-version }} + w3emc-cmake-args: -DBUILD_WITH_BUFR=OFF -DBUILD_WITH_EXTRA_DEPS=ON + ip-version: develop + + - name: checkout + uses: actions/checkout@v4 + with: + path: g2 + + - name: cache-data + id: cache-data + uses: actions/cache@v4 + with: + path: ~/data + key: data-5 + + - name: build + run: | + set -x + cd g2 + mkdir build + cd build + clang --version + gfortran --version + cmake ${{ matrix.config.options }} -DCMAKE_PREFIX_PATH="$GITHUB_WORKSPACE/nceplibs/jasper;$GITHUB_WORKSPACE/nceplibs/NCEPLIBS-g2c;$GITHUB_WORKSPACE/nceplibs/NCEPLIBS-bacio;$GITHUB_WORKSPACE/nceplibs/NCEPLIBS-w3emc;$GITHUB_WORKSPACE/nceplibs/NCEPLIBS-ip" -DFTP_TEST_FILES=ON -DTEST_FILE_DIR=/home/runner/data .. + 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