Drop stale match-path count from sameResponsibleApp comment #214
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: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: false | |
| jobs: | |
| lint: | |
| name: SwiftFormat | |
| runs-on: macos-15 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Install SwiftFormat (if missing) | |
| run: command -v swiftformat >/dev/null || brew install swiftformat | |
| - name: Show versions | |
| run: swiftformat --version | |
| - name: Lint Sources/ + Tests/ | |
| run: swiftformat --lint Sources/ Tests/ | |
| actionlint: | |
| name: actionlint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Run actionlint | |
| run: | | |
| bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash) | |
| ./actionlint -color | |
| shellcheck: | |
| name: ShellCheck | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Run ShellCheck on scripts/ | |
| uses: ludeeus/action-shellcheck@master | |
| with: | |
| scandir: ./scripts | |
| severity: warning | |
| vendor-format: | |
| name: Vendor format | |
| # macos-15 so brew-installed clang-format / perltidy match what | |
| # developers run locally — Ubuntu's apt packages lag and would | |
| # false-fail this job on style changes between versions. | |
| runs-on: macos-15 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Install formatters | |
| run: | | |
| command -v clang-format >/dev/null || brew install clang-format | |
| command -v perltidy >/dev/null || brew install perltidy | |
| - name: Show versions | |
| run: | | |
| clang-format --version | |
| perltidy --version | head -1 | |
| - name: clang-format check (Obj-C) | |
| run: | | |
| find vendor/mediaremote-adapter -type f \( -name '*.m' -o -name '*.h' \) -exec clang-format --dry-run --Werror {} + | |
| - name: perltidy check (Perl) | |
| run: | | |
| diff -u vendor/mediaremote-adapter/bin/mediaremote-adapter.pl <(perltidy -st < vendor/mediaremote-adapter/bin/mediaremote-adapter.pl) | |
| links: | |
| name: Markdown link check | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Run lychee on README.md | |
| uses: lycheeverse/lychee-action@v2 | |
| with: | |
| args: --no-progress --max-concurrency 4 README.md | |
| fail: true | |
| formula: | |
| name: Formula audit | |
| runs-on: macos-15 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: brew style Formula/houdini.rb | |
| run: brew style Formula/houdini.rb | |
| - name: brew audit Formula/houdini.rb | |
| run: | | |
| brew tap-new --no-git local/ci | |
| cp Formula/houdini.rb "$(brew --repo local/ci)/Formula/houdini.rb" | |
| brew audit --strict --new local/ci/houdini | |
| build: | |
| name: Build | |
| runs-on: macos-15 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Show toolchain | |
| run: | | |
| xcode-select -p | |
| swift --version | |
| - name: SwiftPM build | |
| run: swift build | |
| - name: scripts/build.sh | |
| run: ./scripts/build.sh | |
| - name: Adapter framework smoke test | |
| run: perl vendor/mediaremote-adapter/bin/mediaremote-adapter.pl "$PWD/MediaRemoteAdapter.framework" get --no-artwork > /dev/null | |
| - name: Smoke test | |
| run: | | |
| ./houdini help | |
| ./houdini version | |
| tests: | |
| name: Tests | |
| runs-on: macos-15 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Show toolchain | |
| run: swift --version | |
| - name: swift test | |
| run: swift test -Xswiftc -swift-version -Xswiftc 6 -Xswiftc -strict-concurrency=complete -Xswiftc -warnings-as-errors | |
| periphery: | |
| name: Periphery | |
| runs-on: macos-15 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Show toolchain | |
| run: swift --version | |
| - name: Install Periphery | |
| run: brew install peripheryapp/periphery/periphery | |
| - name: Periphery scan | |
| run: periphery scan | |
| sanitize: | |
| name: ${{ matrix.name }} | |
| runs-on: macos-15 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - name: Thread sanitizer | |
| args: -Xswiftc -sanitize=thread | |
| - name: Address sanitizer | |
| args: -Xswiftc -sanitize=address | |
| - name: Release (warnings-as-errors) | |
| args: -c release -Xswiftc -warnings-as-errors | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Show toolchain | |
| run: swift --version | |
| - name: swift build | |
| run: swift build ${{ matrix.args }} -Xswiftc -swift-version -Xswiftc 6 -Xswiftc -strict-concurrency=complete |