Skip to content

Drop stale match-path count from sameResponsibleApp comment #214

Drop stale match-path count from sameResponsibleApp comment

Drop stale match-path count from sameResponsibleApp comment #214

Workflow file for this run

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