name: macOS on: push: branches: ["master"] tags: ["4.*"] pull_request: branches: ["master"] concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: build: name: build + test strategy: fail-fast: false matrix: ver: ["14", "15", "26"] runs-on: macos-${{ matrix.ver }} steps: - uses: actions/checkout@v5 - name: Relink `python` package in `brew` # Unlink and re-link to prevent errors when GitHub `macos` runner images # install `python` outside of `brew`, for example: # https://github.com/orgs/Homebrew/discussions/3895 # https://github.com/actions/setup-python/issues/577 # https://github.com/actions/runner-images/issues/6459 # https://github.com/actions/runner-images/issues/6507 # https://github.com/actions/runner-images/issues/2322 run: brew list -1 | grep python | while read formula; do brew unlink $formula; brew link --overwrite $formula; done - run: brew update - run: brew install wget pkg-config libevent openssl sqlite hiredis mongo-c-driver libmicrohttpd - run: ./configure env: PKG_CONFIG_PATH: "${{ env.PKG_CONFIG_PATH }}:/usr/local/opt/openssl@1.1/lib/pkgconfig" - run: make - run: make check - run: ./run_tests.sh working-directory: examples/ - run: ./run_tests_conf.sh working-directory: examples/ build-cmake: name: build + test cmake strategy: fail-fast: false matrix: ver: ["15", "26"] runs-on: macos-${{ matrix.ver }} steps: - uses: actions/checkout@v5 - name: Relink `python` package in `brew` # Unlink and re-link to prevent errors when GitHub `macos` runner images # install `python` outside of `brew`, for example: # https://github.com/orgs/Homebrew/discussions/3895 # https://github.com/actions/setup-python/issues/577 # https://github.com/actions/runner-images/issues/6459 # https://github.com/actions/runner-images/issues/6507 # https://github.com/actions/runner-images/issues/2322 run: brew list -1 | grep python | while read formula; do brew unlink $formula; brew link --overwrite $formula; done - run: brew update - run: brew install wget pkg-config libevent openssl sqlite hiredis mongo-c-driver libmicrohttpd - name: Configure run: cmake -B ${{github.workspace}}/build - name: Build run: cmake --build ${{github.workspace}}/build - run: ./run_tests.sh working-directory: examples/ - run: ./run_tests_conf.sh working-directory: examples/