83 lines
2.9 KiB
YAML
83 lines
2.9 KiB
YAML
name: Release-macOS
|
|
on:
|
|
push:
|
|
tags:
|
|
- 'v*'
|
|
|
|
jobs:
|
|
build-macos:
|
|
runs-on: macos-12
|
|
steps:
|
|
-
|
|
name: Checkout
|
|
uses: actions/checkout@v4
|
|
-
|
|
name: Setup Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.11'
|
|
-
|
|
name: Build docs to /help
|
|
run: |
|
|
python3 -m pip install --upgrade pip
|
|
python3 -m pip install --upgrade wheel
|
|
python3 -m pip install mkdocs-material
|
|
mkdocs build -d help
|
|
-
|
|
name: Install PyOxidizer
|
|
run: python3 -m pip install pyoxidizer==0.24.0
|
|
-
|
|
name: Download ffmpeg
|
|
run: |
|
|
cd $GITHUB_WORKSPACE
|
|
curl -L -o ffmpeg-macos.7z https://evermeet.cx/ffmpeg/getrelease/ffmpeg/7z
|
|
-
|
|
name: Process ffmpeg
|
|
run: |
|
|
cd $GITHUB_WORKSPACE
|
|
7z e ffmpeg-macos.7z -obin "ffmpeg"
|
|
-
|
|
name: Extract Version Metadata
|
|
id: meta
|
|
run: |
|
|
echo "version=${GITHUB_REF##*/}" >> $GITHUB_ENV
|
|
echo "version_short=${GITHUB_REF##*/v}" >> $GITHUB_ENV
|
|
-
|
|
name: Write version to Info.plist
|
|
run: |
|
|
cd $GITHUB_WORKSPACE
|
|
plutil -replace CFBundleShortVersionString -string "${{ env.version_short }}" static/build_files/macos/Info.plist
|
|
-
|
|
name: Build Hydrus
|
|
run: |
|
|
cd $GITHUB_WORKSPACE
|
|
cp static/build_files/macos/pyoxidizer.bzl pyoxidizer.bzl
|
|
cp static/build_files/macos/requirements.txt requirements.txt
|
|
basename $(rustc --print sysroot) | sed -e "s/^stable-//" > triple.txt
|
|
pyoxidizer build --release
|
|
cd build/$(head -n 1 triple.txt)/release
|
|
mkdir -p "Hydrus Network.app/Contents/MacOS"
|
|
mkdir -p "Hydrus Network.app/Contents/Resources"
|
|
mkdir -p "Hydrus Network.app/Contents/Frameworks"
|
|
mv install/static/icon.icns "Hydrus Network.app/Contents/Resources/icon.icns"
|
|
cp install/static/build_files/macos/Info.plist "Hydrus Network.app/Contents/Info.plist"
|
|
cp install/static/build_files/macos/ReadMeFirst.rtf ./ReadMeFirst.rtf
|
|
cp install/static/build_files/macos/running_from_app "install/running_from_app"
|
|
ln -s /Applications ./Applications
|
|
mv install/* "Hydrus Network.app/Contents/MacOS/"
|
|
rm -rf install
|
|
-
|
|
name: Build DMG
|
|
run: |
|
|
cd $GITHUB_WORKSPACE
|
|
temp_dmg="$(mktemp).dmg"
|
|
hdiutil create "$temp_dmg" -ov -volname "HydrusNetwork" -fs HFS+ -format ULFO -srcfolder "$GITHUB_WORKSPACE/build/$(head -n 1 triple.txt)/release"
|
|
mv "$temp_dmg" Hydrus.Network.${{ env.version_short }}.-.macOS.-.App.dmg
|
|
-
|
|
name: Upload Files
|
|
uses: softprops/action-gh-release@v2
|
|
if: startsWith(github.ref, 'refs/tags/')
|
|
with:
|
|
files: |
|
|
Hydrus.Network.${{ env.version_short }}.-.macOS.-.App.dmg
|