From aced8e192bc766752086d4614c724d971427a564 Mon Sep 17 00:00:00 2001 From: Nils Wentzell Date: Thu, 4 Apr 2024 16:51:32 -0400 Subject: [PATCH] [ghactions] Synchronize build workflow with main branch --- .github/workflows/build.yml | 51 ++++++++++++++++++++++++++++++++++--- 1 file changed, 47 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 37159b4..be5ecbe 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -5,6 +5,19 @@ on: branches: [ 1.0.x ] pull_request: branches: [ 1.0.x ] + workflow_call: + workflow_dispatch: + +env: + CMAKE_C_COMPILER_LAUNCHER: ccache + CMAKE_CXX_COMPILER_LAUNCHER: ccache + CCACHE_COMPILERCHECK: content + CCACHE_BASEDIR: ${{ github.workspace }} + CCACHE_DIR: ${{ github.workspace }}/.ccache + CCACHE_MAXSIZE: 500M + CCACHE_SLOPPINESS: pch_defines,time_macros,include_file_mtime,include_file_ctime + CCACHE_COMPRESS: "1" + CCACHE_COMPRESSLEVEL: "1" jobs: build: @@ -16,18 +29,26 @@ jobs: - {os: ubuntu-22.04, cc: gcc-12, cxx: g++-12, doc: OFF} - {os: ubuntu-22.04, cc: clang-15, cxx: clang++-15, doc: ON} #- {os: macos-12, cc: gcc-12, cxx: g++-12, doc: OFF} - #- {os: macos-12, cc: /usr/local/opt/llvm/bin/clang, cxx: /usr/local/opt/llvm/bin/clang++, doc: OFF} + #- {os: macos-12, cc: clang, cxx: clang++, doc: OFF} runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 + + - uses: actions/cache/restore@v3 + with: + path: ${{ env.CCACHE_DIR }} + key: ccache-${{ matrix.os }}-${{ matrix.cc }}-${{ github.run_id }} + restore-keys: + ccache-${{ matrix.os }}-${{ matrix.cc }}- - name: Install ubuntu dependencies if: matrix.os == 'ubuntu-22.04' run: > sudo apt-get update && sudo apt-get install + ccache clang-15 g++-12 hdf5-tools @@ -50,8 +71,19 @@ jobs: - name: Install homebrew dependencies if: matrix.os == 'macos-12' run: | - brew install gcc@12 llvm hdf5 open-mpi openblas - pip3 install mako + brew install ccache gcc@12 llvm hdf5 open-mpi openblas + mkdir $HOME/.venv + python3 -m venv $HOME/.venv/my_python + source $HOME/.venv/my_python/bin/activate + pip install mako + echo "VIRTUAL_ENV=$VIRTUAL_ENV" >> $GITHUB_ENV + echo "PATH=$PATH" >> $GITHUB_ENV + + - name: add clang cxxflags + if: ${{ contains(matrix.cxx, 'clang') }} + run: | + echo "PATH=/usr/local/opt/llvm/bin:$PATH" >> $GITHUB_ENV + echo "CXXFLAGS=-stdlib=libc++" >> $GITHUB_ENV - name: Build cppdlr env: @@ -65,10 +97,21 @@ jobs: - name: Test cppdlr env: DYLD_FALLBACK_LIBRARY_PATH: /usr/local/opt/llvm/lib + OPENBLAS_NUM_THREADS: "1" run: | cd build ctest -j2 --output-on-failure + - name: ccache statistics + if: always() + run: ccache -sv + + - uses: actions/cache/save@v3 + if: always() + with: + path: ${{ env.CCACHE_DIR }} + key: ccache-${{ matrix.os }}-${{ matrix.cc }}-${{ github.run_id }} + - name: Deploy documentation to website if: matrix.doc == 'ON' && github.ref == 'refs/heads/1.0.x' uses: JamesIves/github-pages-deploy-action@v4