Repository navigation
docs: add changelog entry for resume playback + seek-mute removal #4
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |