Skip to content

docs: add changelog entry for resume playback + seek-mute removal #4

docs: add changelog entry for resume playback + seek-mute removal

docs: add changelog entry for resume playback + seek-mute removal #4

Workflow file for this run

name: Xcode - Build, Package and Release
on:
push:
tags:
- "v*" # Triggers the workflow only when you push a version tag like v1.0.0
jobs:
release:
name: Build and Create Release
runs-on: macos-latest
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
# Selects Xcode 26.3 to provide Swift 6.2+ compiler tools
- name: Set Xcode Version to 26.3.0
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: "26.3.0"
- name: Install libmpv
# Bridging header imports <mpv/client.h>; the project's header search
# path expects /opt/homebrew/include, so install via Homebrew.
run: |
brew install mpv
- name: Resolve Package Dependencies
run: |
xcodebuild -resolvePackageDependencies
- name: Set Default Scheme
run: |
scheme_list=$(xcodebuild -list -json | tr -d "\n")
default=$(echo $scheme_list | ruby -e "require 'json'; puts JSON.parse(STDIN.gets)['project']['targets'][0]")
echo "SCHEME=$default" >> $GITHUB_ENV
if [ "`ls -A | grep -i \\.xcworkspace\$`" ]; then
echo "FILETYPE_PARAM=workspace" >> $GITHUB_ENV
echo "FILE_TO_BUILD=$(ls -A | grep -i \.xcworkspace\$ | head -n 1)" >> $GITHUB_ENV
else
echo "FILETYPE_PARAM=project" >> $GITHUB_ENV
echo "FILE_TO_BUILD=$(ls -A | grep -i \.xcodeproj\$ | head -n 1)" >> $GITHUB_ENV
fi
# Builds the app to a custom build directory using ad-hoc local signing
- name: Build App Binary
run: |
xcodebuild clean build \
-scheme "${{ env.SCHEME }}" \
-${{ env.FILETYPE_PARAM }} "${{ env.FILE_TO_BUILD }}" \
-sdk macosx \
-destination "platform=macOS,arch=arm64" \
-derivedDataPath ./build \
CODE_SIGN_IDENTITY="" \
CODE_SIGNING_REQUIRED=NO \
CODE_SIGNING_ALLOWED=NO
# Locates the compiled .app file, moves it to a staging folder, and compresses it
- name: Package App into ZIP
run: |
APP_PATH=$(find ./build/Build/Products/Debug -name "*.app" -type d -maxdepth 2 | head -n 1)
if [ -z "$APP_PATH" ]; then
APP_PATH=$(find ./build/Build/Products/Release -name "*.app" -type d -maxdepth 2 | head -n 1)
fi
echo "Found app bundle at: $APP_PATH"
APP_NAME=$(basename "$APP_PATH")
mkdir dist
cp -R "$APP_PATH" dist/
cd dist
zip -r "../${{ env.SCHEME }}.zip" "$APP_NAME"
cd ..
# Generates a GitHub Release draft and attaches the zipped application
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
files: "${{ env.SCHEME }}.zip"
generate_release_notes: true
draft: false
prerelease: false