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