Add Editor UI #31
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: Verify Changes | |
| on: | |
| merge_group: | |
| pull_request: | |
| branches: "**" | |
| push: | |
| branches: ["main"] | |
| env: | |
| XCODE_VERSION: 26.0.1 | |
| jobs: | |
| lint: | |
| name: Lint | |
| runs-on: macos-26 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Select Xcode ${{ env.XCODE_VERSION }} | |
| run: sudo xcode-select -s /Applications/Xcode_${{ env.XCODE_VERSION }}.app | |
| - name: Lint | |
| run: | | |
| Scripts/lint | |
| build-and-test: | |
| name: Build and Test (${{ matrix.platform }}) | |
| needs: lint | |
| runs-on: macos-26 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| # - platform: iOS | |
| # xcode_destination: "platform=iOS Simulator,name=GitHub_Actions_Simulator" | |
| # simulator_device_type: "com.apple.CoreSimulator.SimDeviceType.iPhone-16-Pro" | |
| # simulator_runtime: "com.apple.CoreSimulator.SimRuntime.iOS-26-0" | |
| - platform: macOS | |
| xcode_destination: "platform=macOS,arch=arm64" | |
| # simulator_device_type: "" | |
| # simulator_runtime: "" | |
| # - platform: tvOS | |
| # xcode_destination: "platform=tvOS Simulator,name=GitHub_Actions_Simulator" | |
| # simulator_device_type: "com.apple.CoreSimulator.SimDeviceType.Apple-TV-4K-3rd-generation-4K" | |
| # simulator_runtime: "com.apple.CoreSimulator.SimRuntime.tvOS-26-0" | |
| # - platform: watchOS | |
| # xcode_destination: "platform=watchOS Simulator,name=GitHub_Actions_Simulator" | |
| # simulator_device_type: "com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-10-46mm" | |
| # simulator_runtime: "com.apple.CoreSimulator.SimRuntime.watchOS-26-0" | |
| env: | |
| DEV_BUILDS: DevBuilds/Sources | |
| OTHER_XCBEAUTIFY_FLAGS: --renderer github-actions | |
| XCCOV_PRETTY_VERSION: 1.2.0 | |
| XCODE_SCHEME: DevConfiguration | |
| XCODE_DESTINATION: ${{ matrix.xcode_destination }} | |
| XCODE_TEST_PLAN: AllTests | |
| XCODE_TEST_PRODUCTS_PATH: .build/DevConfiguration.xctestproducts | |
| steps: | |
| - name: Select Xcode ${{ env.XCODE_VERSION }} | |
| run: sudo xcode-select -s /Applications/Xcode_${{ env.XCODE_VERSION }}.app | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Checkout DevBuilds | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: DevKitOrganization/DevBuilds | |
| path: DevBuilds | |
| - name: Restore XCTestProducts | |
| if: github.event_name != 'push' | |
| id: cache-xctestproducts-restore | |
| uses: actions/cache/restore@v4 | |
| with: | |
| path: ${{ env.XCODE_TEST_PRODUCTS_PATH }} | |
| key: cache-xctestproducts-${{ github.workflow }}-${{ matrix.platform }}-${{ env.XCODE_VERSION }}-${{ github.sha }} | |
| - uses: irgaly/xcode-cache@v1 | |
| if: steps.cache-xctestproducts-restore.outputs.cache-hit != 'true' | |
| with: | |
| key: xcode-cache-deriveddata-${{ github.workflow }}-${{ matrix.platform }}-${{ env.XCODE_VERSION }}-${{ github.sha }} | |
| restore-keys: | | |
| xcode-cache-deriveddata-${{ github.workflow }}-${{ matrix.platform }}- | |
| xcode-cache-deriveddata- | |
| deriveddata-directory: .build/DerivedData | |
| sourcepackages-directory: .build/DerivedData/SourcePackages | |
| swiftpm-package-resolved-file: Package.resolved | |
| verbose: true | |
| - name: Build for Testing | |
| id: build-for-testing | |
| if: steps.cache-xctestproducts-restore.outputs.cache-hit != 'true' | |
| run: ${{ env.DEV_BUILDS }}/build_and_test.sh --action build-for-testing | |
| - name: Test Without Building | |
| id: test-without-building | |
| if: github.event_name != 'push' | |
| run: ${{ env.DEV_BUILDS }}/build_and_test.sh --action test-without-building | |
| - name: Save XCTestProducts | |
| if: failure() && steps.cache-xctestproducts-restore.outputs.cache-hit != 'true' | |
| uses: actions/cache/save@v4 | |
| with: | |
| path: ${{ env.XCODE_TEST_PRODUCTS_PATH }} | |
| key: ${{ steps.cache-xctestproducts-restore.outputs.cache-primary-key }} | |
| - name: Log Code Coverage | |
| if: github.event_name != 'push' | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| gh release download ${{ env.XCCOV_PRETTY_VERSION }} \ | |
| --repo DevKitOrganization/xccovPretty \ | |
| --pattern "xccovPretty-macos.tar.gz" \ | |
| -O - \ | |
| | tar -xz | |
| chmod +x xccovPretty | |
| xcrun xccov view --report .build/${XCODE_SCHEME}_test-without-building.xcresult --json \ | |
| | ./xccovPretty --github-comment \ | |
| > .build/xccovPretty-${{ matrix.platform }}.output | |
| - name: Upload Logs and XCResults | |
| if: success() || failure() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: Logs_and_XCResults-${{ matrix.platform }} | |
| path: | | |
| .build/*.log | |
| .build/*.xcresult | |
| include-hidden-files: true | |
| - name: Upload xccovPretty output | |
| if: github.event_name != 'push' | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: xccovPrettyOutput-${{ matrix.platform }} | |
| path: .build/xccovPretty-${{ matrix.platform }}.output | |
| include-hidden-files: true | |
| post-pr-comments: | |
| name: Post PR Comments | |
| needs: build-and-test | |
| if: ${{ github.event_name == 'pull_request' }} | |
| permissions: | |
| pull-requests: write | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Download xccovPretty output | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: xccovPrettyOutput-macOS | |
| - name: Post Code Coverage Comment | |
| uses: thollander/actions-comment-pull-request@v3 | |
| with: | |
| file-path: xccovPretty-macOS.output | |
| comment-tag: codeCoverage-macOS |