name: Mac on: push: paths-ignore: - scripts/docker/** branches: - master pull_request: paths-ignore: - scripts/docker/** branches: - master jobs: build: runs-on: macOS-12 steps: - name: checkout sources uses: actions/checkout@v4 with: fetch-depth: 0 submodules: recursive - name: setup Homebrew run: brew install hidapi libxslt libjpg libmtp libraw create-dmg confuse automake - name: checkout Qt resources uses: actions/checkout@v4 with: repository: subsurface/qt-mac ref: main path: qt-mac - name: set the version information id: version_number uses: ./.github/actions/manage-version with: nightly-builds-secret: ${{ secrets.NIGHTLY_BUILDS }} - name: build Subsurface id: build env: CANONICALVERSION: ${{ steps.version_number.outputs.version }} run: | cd ${GITHUB_WORKSPACE}/.. export QT_ROOT=${GITHUB_WORKSPACE}/qt-mac/Qt5.15.15 export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins export PATH=$QT_ROOT/bin:$PATH export CMAKE_PREFIX_PATH=$QT_ROOT/lib/cmake # now setup Subsurface with WebKit and build the dependencies, using the generic build script bash -e -x ./subsurface/scripts/build.sh -desktop -build-with-webkit -release -build-deps -ftdi -prep-only echo "finished initial cmake setup of Subsurface - next build the package" cd subsurface/build echo "run the packaging script" bash -e -x ../packaging/macosx/make-package.sh | tee mp.log 2>&1 IMG=$(grep ^created: mp.log | tail -1 | cut -b10-) echo "Created $IMG" echo "dmg=$IMG" >> $GITHUB_OUTPUT - name: publish pull request artifacts if: github.event_name == 'pull_request' uses: actions/upload-artifact@v4 with: name: Subsurface-MacOS-${{ steps.version_number.outputs.version }} path: ${{ steps.build.outputs.dmg }} compression-level: 0 # only publish a 'release' on push events (those include merging a PR) - name: upload binaries if: github.event_name == 'push' uses: softprops/action-gh-release@v2 with: tag_name: v${{ steps.version_number.outputs.version }} repository: ${{ github.repository_owner }}/nightly-builds token: ${{ secrets.NIGHTLY_BUILDS }} prerelease: false fail_on_unmatched_files: true files: ${{ steps.build.outputs.dmg }}