diff --git a/.github/actions/with-docker/Dockerfile b/.github/actions/with-docker/Dockerfile deleted file mode 100644 index 284ae09..0000000 --- a/.github/actions/with-docker/Dockerfile +++ /dev/null @@ -1,14 +0,0 @@ -FROM rust:1.85.0 - -RUN rustup component add clippy rustfmt - -RUN apt-get update && apt-get install --yes libclang-dev - -ARG USER=user -ARG GROUP=$USER -ARG USER_ID=1000 -ARG GROUP_ID=$USER_ID - -RUN groupadd -g $GROUP_ID $GROUP && useradd -m -u $USER_ID -s /bin/sh -g $GROUP $USER - -USER $USER:$GROUP diff --git a/.github/actions/with-docker/Dockerfile.fuzz b/.github/actions/with-docker/Dockerfile.fuzz index a5c34f0..507f4ae 100644 --- a/.github/actions/with-docker/Dockerfile.fuzz +++ b/.github/actions/with-docker/Dockerfile.fuzz @@ -1,5 +1,5 @@ ARG K_VERSION=7.1.241 -ARG RUST_TOOLCHAIN=1.85.0 +ARG RUST_TOOLCHAIN FROM runtimeverificationinc/kframework-k:ubuntu-jammy-${K_VERSION} AS semantics diff --git a/.github/actions/with-docker/action.yml b/.github/actions/with-docker/action.yml index b4389d3..14b3201 100644 --- a/.github/actions/with-docker/action.yml +++ b/.github/actions/with-docker/action.yml @@ -21,9 +21,12 @@ runs: TAG=runtimeverificationinc/${CONTAINER_NAME} DOCKERFILE=${{ github.action_path }}/${{ inputs.dockerfile }} + RUST_TOOLCHAIN="$(grep -oP '(?<=channel = ").*(?=")' rust-toolchain.toml)" + docker build . \ --file ${DOCKERFILE} \ - --tag ${TAG} + --tag ${TAG} \ + --build-arg RUST_TOOLCHAIN="${RUST_TOOLCHAIN}" - name: 'Run Docker container' shell: bash {0} diff --git a/.github/workflows/test-pr.yml b/.github/workflows/test-pr.yml index 041b8e9..e36fc27 100644 --- a/.github/workflows/test-pr.yml +++ b/.github/workflows/test-pr.yml @@ -8,21 +8,12 @@ concurrency: jobs: build-and-test: name: 'Build and Test Project' - runs-on: [self-hosted, linux, normal] + runs-on: ubuntu-latest steps: - name: 'Check out code' uses: actions/checkout@v4 - - name: 'Set up Docker' - uses: ./.github/actions/with-docker - with: - container-name: kframework-rs-${{ github.sha }} - dockerfile: Dockerfile - name: 'Build and test' - run: docker exec -u user kframework-rs-${GITHUB_SHA} make - - name: 'Tear down Docker' - if: always() - run: | - docker stop --time=0 kframework-rs-${GITHUB_SHA} + run: make build-ffi-and-fuzz: name: 'Build with the FFI and run the fuzzing example' @@ -37,13 +28,18 @@ jobs: dockerfile: Dockerfile.fuzz - name: 'Build and test' run: | + set -euxo pipefail + export HFUZZ_RUN_ARGS="--verbose --logfile log.txt --run_time 60" + docker exec \ --env HFUZZ_RUN_ARGS="${HFUZZ_RUN_ARGS}" \ --workdir /home/user/examples/fuzzer \ kframework-rs-fuzz-${GITHUB_SHA} \ cargo hfuzz run fuzzer + echo "Final lines of hfuzz output:" + docker exec \ --env HFUZZ_RUN_ARGS="${HFUZZ_RUN_ARGS}" \ --workdir /home/user/examples/fuzzer \ diff --git a/rust-toolchain.toml b/rust-toolchain.toml new file mode 100644 index 0000000..38ab2c6 --- /dev/null +++ b/rust-toolchain.toml @@ -0,0 +1,3 @@ +[toolchain] +channel = "1.95.0" +components = ["clippy", "rustfmt"]