mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +00:00
cec60d324b
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
87 lines
3.9 KiB
YAML
87 lines
3.9 KiB
YAML
name: Mac
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
- github-action-test
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
|
|
jobs:
|
|
buildMac:
|
|
runs-on: macOS-11
|
|
steps:
|
|
- name: checkout sources
|
|
uses: actions/checkout@v1
|
|
- name: atomically create or retrieve the build number
|
|
id: build_nr
|
|
run: |
|
|
cd .. # check out parallel to subsurface sources
|
|
url="https://subsurface:${{ secrets.NIGHTLY_BUILDS }}@github.com/subsurface/nightly-builds"
|
|
# the clone followed by the pointless push should verify that the password is stored in the config
|
|
# that way the script doesn't need the password
|
|
git clone -b main https://github.com/subsurface/nightly-builds
|
|
cd nightly-builds
|
|
git remote set-url origin "$url"
|
|
git push origin main
|
|
cd ..
|
|
bash -x subsurface/scripts/get-or-create-build-nr.sh ${{ github.sha }}
|
|
latest=$(<nightly-builds/latest-subsurface-buildnumber)
|
|
echo "latest=$latest" >> $GITHUB_OUTPUT
|
|
- name: setup Homebrew
|
|
run: brew install hidapi libxslt libjpg libmtp create-dmg confuse
|
|
- name: set our Qt build
|
|
run: |
|
|
curl --output ssrf-Qt-5.15.2-mac.tar.xz https://f002.backblazeb2.com/file/Subsurface-Travis/ssrf-Qt5.15.2.tar.xz
|
|
tar -xJf ssrf-Qt-5.15.2-mac.tar.xz
|
|
- name: build Subsurface
|
|
id: build
|
|
run: |
|
|
cd ${GITHUB_WORKSPACE}/..
|
|
export QT_ROOT=${GITHUB_WORKSPACE}/Qt5.15.2/5.15.2/clang_64
|
|
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
|
|
export PATH=$QT_ROOT/bin:$PATH
|
|
export CMAKE_PREFIX_PATH=$QT_ROOT/lib/cmake
|
|
DIR=$(pwd)
|
|
|
|
# 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: Get current date
|
|
id: date
|
|
run: echo "today=$(date '+%Y-%m-%d')" >> $GITHUB_OUTPUT
|
|
|
|
# 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@v1
|
|
with:
|
|
tag_name: v${{ steps.date.outputs.today }}.${{ steps.build_nr.outputs.latest }}
|
|
repository: subsurface/nightly-builds
|
|
token: ${{ secrets.NIGHTLY_BUILDS }}
|
|
prerelease: false
|
|
fail_on_unmatched_files: true
|
|
files: ${{ steps.build.outputs.dmg }}
|
|
body: |
|
|
CICD release artifact
|
|
|
|
These builds are created on every merge or push into the [Subsurface repo](http://github.com/subsurface/subsurface).
|
|
This build is based on http://github.com/subsurface/subsurface/commit/${{ github.sha }}
|
|
|
|
None of these artifacts are signed.
|
|
The Android APK can be side-loaded on most Android devices. If you had a previous Subsurface-mobile version installed from the Google Play store, you'll have to uninstall that first.
|
|
The Windows installer will ask you to confirm installation of an app from an unknown developer.
|
|
The macOS DMG makes it even harder with a multi-step dance that requires opening the Privacy & Security settings in the System Preferences and explicitly confirming that you are willing to install this app.
|
|
|
|
You can find similar Subsurface-Daily builds for [Ubuntu](https://ppa.launchpadcontent.net/subsurface) and Subsurface-test for [Fedora](https://copr.fedorainfracloud.org/coprs/dirkhh/Subsurface-test).
|
|
|
|
Please report any issues with these builds in the [Subsurface user forum](https://groups.google.com/g/subsurface-divelog).
|