diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..4a4b0a2 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,55 @@ +name: CI + +on: + push: + branches: + - main + paths-ignore: + - '**.md' + - 'LICENSE*' + - '.gitignore' + - '.editorconfig' + - '**.gif' + - '**.png' + - '**.jpg' + pull_request: + branches: + - '*' + paths-ignore: + - '**.md' + - 'LICENSE*' + - '.gitignore' + - '.editorconfig' + - '**.gif' + - '**.png' + - '**.jpg' + workflow_dispatch: + +concurrency: + group: ci-${{ github.ref }} + cancel-in-progress: true + +jobs: + test: + name: Test All Platforms + runs-on: macos-15 + steps: + - uses: actions/checkout@v4 + - name: Select Xcode 26.0 + run: sudo xcode-select -s /Applications/Xcode_26.0.app + - name: Skip macro validation + run: defaults write com.apple.dt.Xcode IDESkipMacroFingerprintValidation -bool YES + - name: Run tests + run: make test + + backward-compatibility: + name: Backward Compatibility (Xcode 16.4) + runs-on: macos-15 + steps: + - uses: actions/checkout@v4 + - name: Select Xcode 16.4 + run: sudo xcode-select -s /Applications/Xcode_16.4.app + - name: Skip macro validation + run: defaults write com.apple.dt.Xcode IDESkipMacroFingerprintValidation -bool YES + - name: Test macOS + run: make test-macos diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml new file mode 100644 index 0000000..8f5ef8f --- /dev/null +++ b/.github/workflows/format.yml @@ -0,0 +1,27 @@ +name: Format + +on: + push: + branches: + - main + +concurrency: + group: format-${{ github.ref }} + cancel-in-progress: true + +jobs: + swift_format: + name: swift-format + runs-on: macos-15 + steps: + - uses: actions/checkout@v4 + - name: Select Xcode 26.0 + run: sudo xcode-select -s /Applications/Xcode_26.0.app + - name: Format + run: make format + - uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: Run swift-format + branch: main + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}