--- name: Test MacOS on: pull_request: workflow_dispatch: merge_group: env: TWITCH_PUBSUB_SERVER_TAG: v1.0.8 HTTPBOX_TAG: v0.2.1 QT_QPA_PLATFORM: minimal HOMEBREW_NO_AUTO_UPDATE: 1 HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1 concurrency: group: test-macos-${{ github.ref }} cancel-in-progress: true jobs: test-macos: name: "Test ${{ matrix.os }}, Qt ${{ matrix.qt-version }}" runs-on: ${{ matrix.os }} strategy: matrix: os: [macos-14] qt-version: [6.4.3, 6.7.1] fail-fast: false env: QT_MODULES: ${{ startsWith(matrix.qt-version, '6.') && 'qt5compat qtimageformats' || '' }} steps: - uses: actions/checkout@v4 with: submodules: recursive fetch-depth: 0 # allows for tags access - name: Install Qt uses: jurplel/install-qt-action@v4.1.1 with: cache: true cache-key-prefix: ${{ runner.os }}-QtCache-${{ matrix.qt-version }}-v2 modules: ${{ env.QT_MODULES }} version: ${{ matrix.qt-version }} - name: Install dependencies run: | brew install openssl rapidjson p7zip create-dmg cmake boost - name: Install httpbox run: | curl -L -o httpbox.tar.xz "https://github.com/Chatterino/httpbox/releases/download/${{ env.HTTPBOX_TAG }}/httpbox-x86_64-apple-darwin.tar.xz" tar -xJf httpbox.tar.xz mv ./httpbox-x86_64-apple-darwin/httpbox /usr/local/bin working-directory: /tmp - name: Build run: | mkdir build-test cd build-test cmake \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DBUILD_TESTS=On \ -DBUILD_APP=OFF \ -DUSE_PRECOMPILED_HEADERS=OFF \ .. make -j"$(sysctl -n hw.logicalcpu)" - name: Download and extract Twitch PubSub Server Test run: | mkdir pubsub-server-test curl -L -o pubsub-server.tar.gz "https://github.com/Chatterino/twitch-pubsub-server-test/releases/download/${{ env.TWITCH_PUBSUB_SERVER_TAG }}/server-${{ env.TWITCH_PUBSUB_SERVER_TAG }}-darwin-amd64.tar.gz" tar -xzf pubsub-server.tar.gz -C pubsub-server-test rm pubsub-server.tar.gz cd pubsub-server-test cd .. - name: Test timeout-minutes: 30 run: | httpbox --port 9051 & cd ../pubsub-server-test ./server 127.0.0.1:9050 & cd ../build-test ctest --repeat until-pass:4 --output-on-failure working-directory: build-test