fix(claude): update system prompt instructions for clarity and valida… #66
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: | |
branches: [main] | |
env: | |
CARGO_TERM_COLOR: always | |
RUST_BACKTRACE: 1 | |
jobs: | |
# Quick checks - format, clippy, and basic tests on Linux | |
check: | |
name: Format, Clippy & Test (Linux) | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
submodules: true | |
lfs: true | |
- name: Setup Rust toolchain | |
uses: dtolnay/rust-toolchain@b3b07ba8b418998c39fb20f53e8b695cdcc8de1b # v1 | |
with: | |
components: rustfmt, clippy | |
- name: Cache Cargo dependencies | |
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4 | |
with: | |
path: | | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
target/ | |
key: cargo-check-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }} | |
restore-keys: | | |
cargo-check-${{ runner.os }}- | |
- name: Setup ExifTool for integration tests | |
run: | | |
# Add bundled ExifTool to PATH (from git submodule) | |
echo "${{ github.workspace }}/third-party/exiftool" >> $GITHUB_PATH | |
# Verify ExifTool is working | |
third-party/exiftool/exiftool -ver | |
- name: Run format check, clippy, and tests with integration tests | |
run: make check | |
# Cross-platform testing matrix | |
test-platforms: | |
name: Test (${{ matrix.name }}) | |
runs-on: ${{ matrix.os }} | |
needs: check | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
# macOS (ARM64 and Intel) | |
- name: macOS ARM64 | |
os: macos-latest | |
target: aarch64-apple-darwin | |
use-cross: false | |
- name: macOS Intel | |
os: macos-13 # Use Intel runner | |
target: x86_64-apple-darwin | |
use-cross: false | |
# Windows (Intel and ARM) | |
- name: Windows x64 | |
os: windows-latest | |
target: x86_64-pc-windows-msvc | |
use-cross: false | |
- name: Windows ARM64 | |
os: windows-latest | |
target: aarch64-pc-windows-msvc | |
use-cross: true | |
# Linux x86_64 (native) | |
- name: Linux x64 (glibc) | |
os: ubuntu-latest | |
target: x86_64-unknown-linux-gnu | |
use-cross: false | |
- name: Linux x64 (musl) | |
os: ubuntu-latest | |
target: x86_64-unknown-linux-musl | |
use-cross: true | |
# Linux ARM64 (cross-compilation) | |
- name: Linux ARM64 (glibc) | |
os: ubuntu-latest | |
target: aarch64-unknown-linux-gnu | |
use-cross: true | |
- name: Linux ARM64 (musl) | |
os: ubuntu-latest | |
target: aarch64-unknown-linux-musl | |
use-cross: true | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
submodules: true | |
lfs: true | |
- name: Setup Rust toolchain | |
uses: dtolnay/rust-toolchain@b3b07ba8b418998c39fb20f53e8b695cdcc8de1b # v1 | |
with: | |
targets: ${{ matrix.target }} | |
- name: Install cross-compilation tool | |
if: matrix.use-cross | |
run: | | |
cargo install cross --git https://github.com/cross-rs/cross --locked | |
echo "CARGO_CMD=cross" >> $GITHUB_ENV | |
shell: bash | |
- name: Set cargo command for native builds | |
if: ${{ !matrix.use-cross }} | |
run: echo "CARGO_CMD=cargo" >> $GITHUB_ENV | |
shell: bash | |
- name: Cache Cargo dependencies | |
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4 | |
with: | |
path: | | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
target/ | |
key: cargo-${{ matrix.target }}-${{ hashFiles('**/Cargo.lock') }} | |
restore-keys: | | |
cargo-${{ matrix.target }}- | |
cargo- | |
- name: Setup ExifTool for integration tests | |
if: ${{ !matrix.use-cross && !contains(matrix.os, 'windows') }} | |
run: | | |
# Add bundled ExifTool to PATH (from git submodule) for Unix native builds only | |
echo "${{ github.workspace }}/third-party/exiftool" >> $GITHUB_PATH | |
# Verify ExifTool is working | |
third-party/exiftool/exiftool -ver | |
- name: Build for target | |
run: | | |
${{ env.CARGO_CMD }} build --target ${{ matrix.target }} --features test-helpers,integration-tests | |
- name: Run tests for target | |
run: | | |
${{ env.CARGO_CMD }} test --target ${{ matrix.target }} --features test-helpers,integration-tests |