name: macos-ci on: workflow_dispatch: push: branches: - opengl-2 tags: - 'macos-*' paths: - CMakeLists.txt - 'platform/ios/**' - 'platform/darwin/**' - ".github/workflows/macos-ci.yml" - "bin/**" - "expression-test/**" - "include/**" - "metrics/**" - "platform/default/**" - "render-test/**" - "scripts/**" - "src/**" - "test/**" - "vendor/**" - ".gitmodules" - "!**/*.md" pull_request: branches: - opengl-2 paths: - CMakeLists.txt - 'platform/ios/**' - 'platform/darwin/**' - ".github/workflows/macos-ci.yml" - "bin/**" - "expression-test/**" - "include/**" - "metrics/**" - "platform/default/**" - "render-test/**" - "scripts/**" - "src/**" - "test/**" - "vendor/**" - ".gitmodules" - "!**/*.md" concurrency: # cancel jobs on PRs only group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} jobs: build: name: MacOS CI Tests runs-on: [self-hosted, macOS, ARM64] env: BUILDTYPE: Debug HOMEBREW_NO_AUTO_UPDATE: 1 HOMEBREW_NO_INSTALL_CLEANUP: 1 defaults: run: working-directory: platform/ios shell: bash steps: - uses: actions/checkout@v4 with: submodules: recursive fetch-depth: 0 - uses: actions/setup-node@v4 with: node-version: 18 - name: npm install run: npm ci --ignore-scripts - name: Run macOS Objective-C tests run: | ../macos/scripts/run-in-macos-gui-env.sh "make macos-test" - name: npm install # C++ tests are run with root as working directory run: npm ci --ignore-scripts working-directory: . - name: Run macOS C++ unit tests run: | cmake -S . -B "$BUILD_DIR" cmake --build "$BUILD_DIR" --target mbgl-test-runner ctest -VV --test-dir "$BUILD_DIR" -R mbgl-test-runner env: BUILD_DIR: ../../../maplibre-gl-native-macostestbuild - name: Check public symbols run: make darwin-check-public-symbols - name: Lint plist files run: make macos-lint