diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ab73b8d..e4d85f2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -4,6 +4,12 @@ on: # Pull requests to main run Package, which calls this workflow. pull_request: branches-ignore: [main] + paths: + - "Sources/**" + - "Tests/**" + - "Package.swift" + - "raycast/**" + - ".github/workflows/build.yml" workflow_call: permissions: diff --git a/.github/workflows/package.yml b/.github/workflows/package.yml index 11d3d57..4603438 100644 --- a/.github/workflows/package.yml +++ b/.github/workflows/package.yml @@ -3,6 +3,15 @@ name: Package on: pull_request: branches: [main] + paths: + - "Sources/**" + - "Tests/**" + - "Package.swift" + - "bundle.sh" + - "Formula/**" + - "raycast/**" + - ".github/workflows/build.yml" + - ".github/workflows/package.yml" workflow_call: inputs: version: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 41d70ef..17e1c13 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,6 +3,16 @@ name: Release on: push: branches: [main] + # Only what ships. Formula edits go live via the tap on merge and need no release. + paths: + - "Sources/**" + - "Package.swift" + - "bundle.sh" + - "raycast/**" + - ".github/actions/**" + - ".github/workflows/build.yml" + - ".github/workflows/package.yml" + - ".github/workflows/release.yml" # Manual run to check the release path. Without "publish" it stops before publishing. workflow_dispatch: inputs: diff --git a/CLAUDE.md b/CLAUDE.md index 3587a99..2dec5bd 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -44,6 +44,7 @@ Invariants to preserve: ## CI / release +- All three are path-filtered to code, packaging and CI files, so docs-only changes run nothing. Add new shipped paths to the `paths:` lists. - `build.yml` runs on PRs to non-main branches: swift build, swift test, ray lint. - `package.yml` runs on PRs to `main`: bundle, Homebrew formula install/test/audit from a local tap, and `ray build`. - `release.yml` runs on every push to `main`. It auto-bumps the patch version, creates a GitHub release, rewrites the `url`/`tag`/`revision` in `Formula/klangladder.rb` and commits it to `main` as the bot, then publishes to the Raycast Store. It also swaps the `../..` path dependency for the GitHub URL.