Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
9 changes: 9 additions & 0 deletions .github/workflows/package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
10 changes: 10 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
1 change: 1 addition & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down