spank-olm

WIP Do not look
git clone git://archive.git.mtrnord.blog/MTRNord/spank-olm.git
Log | Files | Refs | README | LICENSE

ci.yml (2429B)


      1 name: CI
      2 
      3 on: [ push, pull_request, workflow_dispatch ]
      4 
      5 permissions: { }
      6 
      7 jobs:
      8   CI:
      9     name: ${{ matrix.name }}
     10     runs-on: ${{ matrix.os }}
     11     strategy:
     12       fail-fast: false
     13       matrix:
     14         include:
     15           - name: "Linux x64 (Ubuntu Latest) - GCC 14"
     16             os: ubuntu-latest
     17             build: { cc: gcc-14, cxx: g++-14, linker: ld }
     18 
     19           #- name: "macOS arm64 (latest) - Xcode"
     20           #  os: macos-latest
     21           #  build: { cc: clang, cxx: clang++, linker: ld.lld }
     22 
     23     env:
     24       CC: ${{ matrix.build.cc }}
     25       CXX: ${{ matrix.build.cxx }}
     26       LD: ${{ matrix.build.linker }}
     27       CPPFLAGS: -Wall
     28 
     29     steps:
     30       - name: Checkout code
     31         uses: actions/checkout@v4
     32 
     33       - name: Install Ubuntu dependencies
     34         if: runner.os == 'Linux'
     35         run: |
     36           sudo apt-get update
     37           sudo apt-get install \
     38             meson pkg-config
     39 
     40       - name: Install macOS dependencies
     41         if: runner.os == 'macOS'
     42         run: |
     43           pip3 install meson --break-system-packages
     44           brew install \
     45             ninja pkg-config
     46 
     47 
     48       - name: Prepare macOS environment
     49         if: runner.os == 'macOS'
     50         run: |
     51           echo "PKG_CONFIG_PATH=$(brew --prefix botan)/lib/pkgconfig:$PKG_CONFIG_PATH" >> $GITHUB_ENV
     52 
     53       - name: Build and install Botan
     54         run: |
     55           git clone --depth 1 https://github.com/randombit/botan.git
     56           pushd botan
     57           ./configure.py --prefix="${{ github.workspace }}/botan-install"
     58           make -j$(nproc)
     59           make install
     60           popd
     61           echo "PKG_CONFIG_PATH=${{ github.workspace }}/botan-install/lib/pkgconfig:$PKG_CONFIG_PATH" >> $GITHUB_ENV
     62           echo "CPPFLAGS=-I${{ github.workspace }}/botan-install/include $CPPFLAGS" >> $GITHUB_ENV
     63           echo "LDFLAGS=-L${{ github.workspace }}/botan-install/lib $LDFLAGS" >> $GITHUB_ENV
     64 
     65       - name: Configure spank-olm
     66         run: |
     67           meson setup build \
     68             -Ddebug=true \
     69           || (cat build/meson-logs/meson-log.txt && exit 1)
     70 
     71       - name: Build spank-olm
     72         run: meson compile -C build
     73 
     74       - name: Check spank-olm
     75         run: |
     76           meson test -C build \
     77           || (cat build/meson-logs/testlog.txt && exit 1)
     78 
     79       - name: Install spank-olm
     80         run: sudo meson install -C build
     81 
     82       - name: Rebuild the shared library cache
     83         if: runner.os == 'Linux'
     84         run: sudo ldconfig