name: swift-macos-arm64 on: push: branches: [ main ] pull_request: branches: [ main ] workflow_dispatch: jobs: swift-macos-arm64: runs-on: macos-arm64 steps: - uses: actions/checkout@v4 - name: Show toolchain versions run: | set -eu sw_vers xcodebuild -version swift --version - name: Build app run: | set -eu xcodebuild -project SwiftTrayDemo.xcodeproj \ -scheme SwiftTrayDemo \ -configuration Release \ -destination 'generic/platform=macOS' \ ARCHS=arm64 ONLY_ACTIVE_ARCH=YES \ -derivedDataPath build/DerivedData \ build - name: Package app run: | set -eux rm -rf artifacts bundle-out mkdir -p artifacts bundle-out app="build/DerivedData/Build/Products/Release/SwiftTrayDemo.app" zip_name="swift-window-demo-macos-arm64-run${{ github.run_number }}.zip" [ -d "$app" ] || { echo 'No SwiftTrayDemo.app produced'; exit 1; } ditto -c -k --sequesterRsrc --keepParent "$app" "artifacts/$zip_name" ditto "$app" "bundle-out/SwiftTrayDemo.app" printf '%s\n' 'SwiftTrayDemo macOS app bundle.' > artifacts/README.txt - name: Copy latest app to runner desktop run: | set -eux dest="$HOME/Desktop/Builds/swift-tests" mkdir -p "$dest" find "$dest" -mindepth 1 -maxdepth 1 -exec rm -rf {} + ditto bundle-out/SwiftTrayDemo.app "$dest/SwiftTrayDemo.app" cp artifacts/README.txt "$dest/" printf '%s\n' \ 'repo: swift-tests' \ 'workflow: swift-macos-arm64.yml' \ 'artifact: SwiftTrayDemo.app' \ "runner_app: $dest/SwiftTrayDemo.app" \ > "$dest/LATEST.txt" - name: Upload artifacts uses: actions/upload-artifact@v3 with: name: SwiftTrayDemo-macos-arm64-run${{ github.run_number }} path: artifacts/ retention-days: 14