name: Build CI on: push: branches: [ master ] pull_request: branches: [ master ] schedule: # build the main branch every Monday morning - cron: '37 9 * * 1' workflow_dispatch: jobs: build: runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, macos-latest] compiler: [cc, clang, gcc-12] exclude: - os: macos-latest compiler: cc - os: macos-latest compiler: gcc-12 steps: - name: Checkout code uses: actions/checkout@v3 - name: Compiler version run: $CC -v env: CC: ${{ matrix.compiler }} - name: Install Linux dependencies run: sudo apt install cmake ninja-build libssl-dev libpcap-dev libnet1-dev libjson-c-dev if: ${{ runner.os == 'Linux' }} - name: Install macOS dependencies run: | brew install cmake ninja openssl@3 libpcap libnet json-c echo "LDFLAGS=-L$(brew --prefix openssl@3)/lib" >> $GITHUB_ENV echo "CPPFLAGS=-I$(brew --prefix openssl@3)/include" >> $GITHUB_ENV if: ${{ runner.os == 'macOS' }} - name: cmake -B ${{github.workspace}}/build -G Ninja run: cmake -B ${{github.workspace}}/build -G Ninja env: CC: ${{ matrix.compiler }} - name: ninja -C ${{github.workspace}}/build run: ninja -C ${{github.workspace}}/build