name: Build and run tests (macOS) on: [push, pull_request] jobs: test-macos: runs-on: ${{ matrix.os.id }} strategy: matrix: os: - { id: macos-13, name: 'Ventura' } cpp_std: - 'c++11' - 'c++17' fail-fast: false steps: - name: Install Dependencies run: | brew install bison flex gawk libffi pkg-config bash - name: Runtime environment shell: bash env: WORKSPACE: ${{ github.workspace }} run: | echo "GITHUB_WORKSPACE=`pwd`" >> $GITHUB_ENV echo "$GITHUB_WORKSPACE/.local/bin" >> $GITHUB_PATH echo "$(brew --prefix bison)/bin" >> $GITHUB_PATH echo "$(brew --prefix flex)/bin" >> $GITHUB_PATH echo "procs=$(sysctl -n hw.ncpu)" >> $GITHUB_ENV - name: Tool versions shell: bash run: | cc --version - name: Checkout Yosys uses: actions/checkout@v4 - name: Get iverilog shell: bash run: | git clone https://github.com/steveicarus/iverilog.git cd iverilog echo "IVERILOG_GIT=$(git rev-parse HEAD)" >> $GITHUB_ENV - name: Cache iverilog id: cache-iverilog uses: actions/cache@v4 with: path: .local/ key: ${{ matrix.os.id }}-${{ env.IVERILOG_GIT }} - name: Build iverilog if: steps.cache-iverilog.outputs.cache-hit != 'true' shell: bash run: | mkdir -p $GITHUB_WORKSPACE/.local/ cd iverilog autoconf CC=gcc CXX=g++ ./configure --prefix=$GITHUB_WORKSPACE/.local/ make -j${{ env.procs }} make install - name: Build yosys shell: bash run: | make config-clang make -j${{ env.procs }} CXXSTD=${{ matrix.cpp_std }} CC=cc CXX=cc LD=cc - name: Run tests if: matrix.cpp_std == 'c++11' shell: bash run: | make -j${{ env.procs }} test CXXSTD=${{ matrix.cpp_std }} CC=cc CXX=cc LD=cc