diff --git a/ci/Dockerfile.validate b/ci/Dockerfile.validate new file mode 100644 index 000000000..474e52c40 --- /dev/null +++ b/ci/Dockerfile.validate @@ -0,0 +1,20 @@ +FROM rust:1.85-bookworm + +# Install protobuf compiler (required by Cross.toml), shellcheck (for ci/validate), and libfuse (for fuser crate) +RUN apt-get update && apt-get install -y \ + protobuf-compiler \ + shellcheck \ + libfuse3-dev \ + pkg-config \ + && rm -rf /var/lib/apt/lists/* + +# Install nextest for testing +RUN curl -LsSf https://get.nexte.st/latest/linux-musl | tar zxf - -C ${CARGO_HOME:-~/.cargo}/bin + +WORKDIR /workspace + +# Copy over the source +COPY . . + +# Run validation +CMD ["bash", "-c", "ci/validate"] diff --git a/ci/validate-linux b/ci/validate-linux new file mode 100755 index 000000000..4db4c371e --- /dev/null +++ b/ci/validate-linux @@ -0,0 +1,14 @@ +#!/usr/bin/env bash +set -o errexit +set -o nounset +set -o pipefail + +# Build the validation Docker image +echo "Building Linux validation environment..." +docker build -f ./ci/Dockerfile.validate -t lading-validate . + +# Run validation in the container +echo "Running validation in Linux container..." +docker run --rm -v "$(pwd):/workspace" lading-validate + +echo "Linux validation passed!"