diff --git a/.github/workflows/docker-antithesis.yml b/.github/workflows/docker-antithesis.yml new file mode 100644 index 000000000..b7b35d120 --- /dev/null +++ b/.github/workflows/docker-antithesis.yml @@ -0,0 +1,31 @@ +name: docker antithesis + +on: + push: + branches: + - unstable + +env: + ANTITHESIS_PASSWORD: ${{ secrets.ANTITHESIS_PASSWORD }} + ANTITHESIS_USERNAME: ${{ secrets.ANTITHESIS_USERNAME }} + ANTITHESIS_SERVER: ${{ secrets.ANTITHESIS_SERVER }} + REPOSITORY: ${{ secrets.ANTITHESIS_REPOSITORY }} + IMAGE_NAME: lighthouse + TAG: libvoidstar + +jobs: + build-docker: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2 + - name: Update Rust + run: rustup update stable + - name: Dockerhub login + run: | + echo "${ANTITHESIS_PASSWORD}" | docker login --username ${ANTITHESIS_USERNAME} https://${ANTITHESIS_SERVER} --password-stdin + - name: Build AMD64 dockerfile (with push) + run: | + docker build \ + --tag ${ANTITHESIS_SERVER}/${REPOSITORY}/${IMAGE_NAME}:${TAG} \ + --file ./testing/antithesis/Dockerfile.libvoidstar . + docker push ${ANTITHESIS_SERVER}/${REPOSITORY}/${IMAGE_NAME}:${TAG} diff --git a/testing/antithesis/Dockerfile.libvoidstar b/testing/antithesis/Dockerfile.libvoidstar new file mode 100644 index 000000000..d9084af34 --- /dev/null +++ b/testing/antithesis/Dockerfile.libvoidstar @@ -0,0 +1,26 @@ +FROM rust:1.56.1-bullseye AS builder +RUN apt-get update && apt-get -y upgrade && apt-get install -y cmake libclang-dev +COPY . lighthouse + +# build lighthouse directly with a cargo build command, bypassing the makefile +RUN cd lighthouse && LD_LIBRARY_PATH=/lighthouse/testing/antithesis/libvoidstar/ RUSTFLAGS="-Cpasses=sancov -Cllvm-args=-sanitizer-coverage-level=3 -Cllvm-args=-sanitizer-coverage-trace-pc-guard -Ccodegen-units=1 -Cdebuginfo=2 -L/lighthouse/testing/antithesis/libvoidstar/ -lvoidstar" cargo build --release --manifest-path lighthouse/Cargo.toml --target x86_64-unknown-linux-gnu --features modern --verbose --bin lighthouse + +# build lcli binary directly with cargo install command, bypassing the makefile +RUN cargo install --path /lighthouse/lcli --force --locked + +FROM ubuntu:latest +RUN apt-get update && apt-get -y upgrade && apt-get install -y --no-install-recommends \ + libssl-dev \ + ca-certificates \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +# create and move the libvoidstar file +RUN mkdir libvoidstar +COPY --from=builder /lighthouse/testing/antithesis/libvoidstar/libvoidstar.so /usr/lib/libvoidstar.so + +# set the env variable to avoid having to always set it +ENV LD_LIBRARY_PATH=/usr/lib +# move the lighthouse binary and lcli binary +COPY --from=builder /lighthouse/target/x86_64-unknown-linux-gnu/release/lighthouse /usr/local/bin/lighthouse +COPY --from=builder /lighthouse/target/release/lcli /usr/local/bin/lcli diff --git a/testing/antithesis/libvoidstar/libvoidstar.so b/testing/antithesis/libvoidstar/libvoidstar.so new file mode 100644 index 000000000..0f8a0f23c Binary files /dev/null and b/testing/antithesis/libvoidstar/libvoidstar.so differ