name: Mac OS build on: push: branches: - master - release-** paths: - 'src/**' - 'external/**' - 'python/**' - 'tests/**' - 'mac/**' - '.docker/**' - '.ci/**' - 'CMakeLists.txt' pull_request: branches: - master - release-** paths: - 'src/**' - 'external/**' - 'python/**' - 'tests/**' - 'mac/**' - '.docker/**' - '.ci/**' - 'CMakeLists.txt' env: QT_VERSION: 5.14.2 QGIS_DEPS_VERSION: 0.6.0 CCACHE_DIR: /Users/runner/work/ccache BUILD_DIR: /Users/runner/work/QGIS/build-QGIS jobs: mac_os_build: if: github.repository == 'qgis/QGIS' runs-on: macos-latest steps: - uses: actions/checkout@v2 - name: Prepare build cache for pull request uses: pat-s/always-upload-cache@v2.1.3 if: github.event_name == 'pull_request' with: path: ${{ env.CCACHE_DIR }} key: build-mac-ccache-${{ github.head_ref }}-${{ github.sha }} # The head_ref or source branch of the pull request in a workflow run. # The base_ref or target branch of the pull request in a workflow run. restore-keys: | build-mac-ccache-${{ github.head_ref }}- build-mac-ccache-${{ github.base_ref }}- build-mac-ccache-refs/heads/master- - name: Prepare build cache for branch/tag # use a fork of actions/cache@v2 to upload cache even when the build or test failed uses: pat-s/always-upload-cache@v2.1.3 if: github.event_name != 'pull_request' with: path: ${{ env.CCACHE_DIR }} # The branch or tag ref that triggered the workflow run. For branches this in the format refs/heads/, and for tags it is refs/tags/ key: build-mac-ccache-${{ github.ref }}-${{ github.sha }} restore-keys: | build-mac-ccache-${{ github.ref }}- build-mac-ccache-refs/heads/master- - name: Cache Qt id: cache-qt uses: pat-s/always-upload-cache@v2.1.3 with: path: /opt/Qt/${{ env.QT_VERSION }} key: mac-qt-${{ env.QT_VERSION }} - name: Download Qt if: steps.cache-qt.outputs.cache-hit != 'true' run: wget https://qgis.org/downloads/macos/deps/qt-${QT_VERSION}.tar.gz - name: Cache qgis-deps id: cache-deps uses: pat-s/always-upload-cache@v2.1.3 with: path: /opt/QGIS/qgis-deps-${{ env.QGIS_DEPS_VERSION }} key: mac-qgis-deps-${{ env.QGIS_DEPS_VERSION }} - name: Download deps if: steps.cache-deps.outputs.cache-hit != 'true' run: wget https://qgis.org/downloads/macos/deps/qgis-deps-${QGIS_DEPS_VERSION}.tar.gz - name: Install Qt and deps run: | wget https://qgis.org/downloads/macos/deps/install_qgis_deps-${QGIS_DEPS_VERSION}.bash chmod +x ./install_qgis_deps-${QGIS_DEPS_VERSION}.bash sudo ./install_qgis_deps-${QGIS_DEPS_VERSION}.bash - name: Install ccache run: | mkdir -p ${CCACHE_DIR} brew install ccache ccache --set-config=max_size=2.0G ccache -s - name: create build system run: | mkdir -p ${BUILD_DIR} cd ${BUILD_DIR} # FIXME: PDAL disable because of #39971 PATH=/opt/QGIS/qgis-deps-${QGIS_DEPS_VERSION}/stage/bin:$PATH \ cmake -DQGIS_MAC_DEPS_DIR=/opt/QGIS/qgis-deps-${QGIS_DEPS_VERSION}/stage \ -DCMAKE_PREFIX_PATH=/opt/Qt/${QT_VERSION}/clang_64 \ -DWITH_BINDINGS=TRUE \ -DWITH_3D=TRUE \ -DWITH_PDAL=FALSE \ -DWITH_EPT=TRUE \ ../QGIS - name: build QGIS run: | cd ${BUILD_DIR} make -j $(sysctl -n hw.ncpu)