Drop Accessibility permission requirement #31
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: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| 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/ | |
| run: swiftformat --lint Sources/ | |
| actionlint: | |
| name: actionlint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: raven-actions/actionlint@v2 | |
| 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 | |
| swiftc --version | |
| - name: SwiftPM build | |
| run: swift build | |
| - name: scripts/build.sh | |
| run: ./scripts/build.sh | |
| - name: Smoke test | |
| run: | | |
| ./houdini help | |
| ./houdini version | |
| # One job per matrix variant, run in parallel. Each variant exercises | |
| # a different compile-time invariant: TSan for actor/concurrency races, | |
| # ASan for memory issues, and a warnings-as-errors release build to | |
| # catch any swiftc warning that slipped past local checks. | |
| sanitize: | |
| name: ${{ matrix.name }} | |
| runs-on: macos-15 | |
| strategy: | |
| # Surface every variant's result rather than aborting on the first | |
| # failure — sanitizer regressions and warning regressions are | |
| # independent failure modes. | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - name: Thread sanitizer | |
| config: "" | |
| extra: "-Xswiftc -sanitize=thread" | |
| - name: Address sanitizer | |
| config: "" | |
| extra: "-Xswiftc -sanitize=address" | |
| - name: Release (warnings-as-errors) | |
| config: "-c release" | |
| extra: "-Xswiftc -warnings-as-errors" | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Show toolchain | |
| run: swift --version | |
| - name: swift build ${{ matrix.config }} ${{ matrix.extra }} | |
| run: | | |
| swift build ${{ matrix.config }} \ | |
| -Xswiftc -swift-version -Xswiftc 6 \ | |
| -Xswiftc -strict-concurrency=complete \ | |
| ${{ matrix.extra }} |