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
11 changes: 9 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
with:
components: clippy
- uses: Swatinem/rust-cache@v2
- run: cargo clippy --workspace --all-targets --all-features -- -D warnings
- run: cargo clippy --workspace --all-targets --all-features --locked -- -D warnings

test:
name: test
Expand All @@ -37,7 +37,14 @@ jobs:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- run: cargo test --workspace --all-features
# The integration tests dial macula-go's in-process stations
# (tests/teststation), built to target/teststation first.
- uses: actions/setup-go@v5
with:
go-version-file: tests/teststation/go.mod
cache-dependency-path: tests/teststation/go.sum
- run: ./scripts/build-teststation.sh
- run: cargo test --workspace --all-features --locked

doc:
name: docs (deny broken links)
Expand Down
26 changes: 14 additions & 12 deletions .github/workflows/release-core.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,18 +24,20 @@ jobs:
exit 1
fi

# Rebuilds and re-runs the offline suite here rather than trusting
# an artifact from ci.yml's own run -- this workflow triggers off a
# tag push, a separate event from the branch push ci.yml already
# validated, so there's no prior run's output to reuse. Deliberately
# NOT --locked anywhere below: this repo doesn't commit Cargo.lock
# (library crate; a committed lock silently caps what a loose
# constraint resolves to on every later run -- see the workspace's
# own lockfile-hygiene convention), so a fresh checkout has no lock
# to be strict against.
- run: cargo build --workspace --all-targets
- run: cargo test --workspace --all-features
- run: cargo clippy --workspace --all-targets --all-features -- -D warnings
# Rebuilds and re-runs the suite here rather than trusting an artifact
# from ci.yml's run: a tag push is a separate event from the branch
# push ci.yml validated, so there is no prior run to reuse. --locked:
# the committed Cargo.lock is what was tested.
# The integration tests dial macula-go's in-process stations
# (tests/teststation), built to target/teststation first.
- uses: actions/setup-go@v5
with:
go-version-file: tests/teststation/go.mod
cache-dependency-path: tests/teststation/go.sum
- run: ./scripts/build-teststation.sh
- run: cargo build --workspace --all-targets --locked
- run: cargo test --workspace --all-features --locked
- run: cargo clippy --workspace --all-targets --all-features --locked -- -D warnings
- run: cargo fmt --all -- --check

# Dry-run needs no registry auth -- it only verifies metadata,
Expand Down
20 changes: 13 additions & 7 deletions .github/workflows/release-ffi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,19 +28,25 @@ jobs:
exit 1
fi

# Same reasoning as release-core.yml: rebuild+retest from scratch
# Same reasoning as release-core.yml: rebuild and retest from scratch
# (a tag push is a separate event from the branch push ci.yml
# already validated), no --locked anywhere (no committed Cargo.lock
# in this repo).
- run: cargo build --workspace --all-targets
- run: cargo test --workspace --all-features
- run: cargo clippy --workspace --all-targets --all-features -- -D warnings
# validated), against the committed Cargo.lock.
# The integration tests dial macula-go's in-process stations
# (tests/teststation), built to target/teststation first.
- uses: actions/setup-go@v5
with:
go-version-file: tests/teststation/go.mod
cache-dependency-path: tests/teststation/go.sum
- run: ./scripts/build-teststation.sh
- run: cargo build --workspace --all-targets --locked
- run: cargo test --workspace --all-features --locked
- run: cargo clippy --workspace --all-targets --all-features --locked -- -D warnings
- run: cargo fmt --all -- --check

# Dry-run needs no registry auth -- it only verifies metadata,
# compresses the package, and checks the result, never uploads.
# This is also the step that proves macula-rust-ffi's `macula-rust
# = { path = "..", version = "0.2" }` dependency actually resolves
# = { path = "..", version = "0.4" }` dependency actually resolves
# against the REAL published macula-rust on crates.io, not just the
# local workspace path -- `cargo publish` downloads and rebuilds
# against the registry version during verification, confirmed
Expand Down
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
/target
Cargo.lock
Cargo.lock.bak
Loading
Loading