Skip to content
Closed
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: 4 additions & 2 deletions .github/workflows/ci.yml → .github/workflows/blend-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ on:
- "blend/**"
- "Cargo.toml"
- "Cargo.lock"
- ".github/workflows/ci.yml"
- ".github/workflows/blend-ci.yml"
pull_request:
paths:
- "blend/**"
- "Cargo.toml"
- "Cargo.lock"
- ".github/workflows/ci.yml"
- ".github/workflows/blend-ci.yml"

permissions:
contents: read
Expand Down Expand Up @@ -42,5 +42,7 @@ jobs:
with:
workspaces: blend
- run: cargo fmt --check
- run: cargo run -- check
- run: cargo run -- format --check
- run: cargo clippy -- -D warnings
- run: cargo test
67 changes: 67 additions & 0 deletions .github/workflows/orders-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
name: orders CI

on:
push:
branches: [master]
paths:
- "orders/**"
- ".github/workflows/orders-ci.yml"
pull_request:
paths:
- "orders/**"
- ".github/workflows/orders-ci.yml"

permissions:
contents: read
pull-requests: read

jobs:
check:
runs-on: ubuntu-latest
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@ab7a9404c0f3da075243ca237b5fac12c98deaa5 # v2.19.3
with:
egress-policy: audit

- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1

- name: Check changed paths
id: changed-paths
env:
GH_TOKEN: ${{ github.token }}
run: |
set -eu

if [ "${{ github.event_name }}" = "pull_request" ]; then
gh api "repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}/files" --paginate --jq '.[].filename' > "$RUNNER_TEMP/changed-files"
else
gh api "repos/${{ github.repository }}/compare/${{ github.event.before }}...${{ github.sha }}" --jq '.files[].filename' > "$RUNNER_TEMP/changed-files"
fi

only_orders=true
while IFS= read -r path; do
case "$path" in
orders/*) ;;
*) only_orders=false ;;
esac
done < "$RUNNER_TEMP/changed-files"

echo "only-orders=${only_orders}" >> "$GITHUB_OUTPUT"

- name: Install latest blend release
if: steps.changed-paths.outputs.only-orders == 'true'
run: |
set -eu
mkdir -p "$RUNNER_TEMP/bin"
curl --proto '=https' --tlsv1.2 -fsSL https://github.com/frantic1048/Vanilla/releases/latest/download/blend-installer.sh -o "$RUNNER_TEMP/blend-installer.sh"
sh "$RUNNER_TEMP/blend-installer.sh" --dir "$RUNNER_TEMP/bin" --quiet
"$RUNNER_TEMP/bin/blend" --version

- name: Check orders
if: steps.changed-paths.outputs.only-orders == 'true'
run: '"$RUNNER_TEMP/bin/blend" check'

- name: Check order formatting
if: steps.changed-paths.outputs.only-orders == 'true'
run: '"$RUNNER_TEMP/bin/blend" format --check'
8 changes: 6 additions & 2 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,18 @@ Migration from the legacy nushell-based blend + `packages/` (stow-managed) to Ru

## blend Development

blend is being enhanced iteratively via manual testing. No CI yet.
blend is being enhanced iteratively via manual testing and CI.

**Commit conventions:** use semantic/conventional commit subjects for changes to the blend program and its release/CI tooling (for example, `feat(blend): ...`, `fix(blend): ...`, `ci: ...`, `chore(blend): ...`).

**Branch conventions:** development branches should use the `dev/*` namespace.

**Pre-release posture:** blend is pre-initial-release with one user (the repo owner). Backwards compatibility is *not* a constraint — prefer the cleanest design over compat shims, deprecation paths, or migration tooling for hypothetical external users. Migrating the user's own dotfiles in this repo is still in scope.

**Build / common tasks (via `just`):**
```sh
just build # cargo build --release + symlink target/release/blend → bin/blend
just check # blend view --dry-run (validates all orders)
just check # blend check (validates all orders)
just test # cargo test --release
just fmt-check # rustfmt --check
just clippy # cargo clippy -- -D warnings
Expand Down
Loading
Loading