Antithesis docker workflow (#2877)
## Issue Addressed Automates a build and push to antithesis servers on merges to unstable. They run tests against lighthouse daily and have requested more frequent pushes. Currently we are just manually pushing stable images when we have a new release. ## Proposed Changes - Add a `Dockerfile.libvoidstar` - Add the `libvoidstar.so` binary - Add a new workflow to autmatically build and push on merges to unstable ## Additional Info Requires adding the following secrets -`ANTITHESIS_USERNAME` -`ANTITHESIS_PASSWORD` -`ANTITHESIS_REPOSITORY` -`ANTITHESIS_SERVER` Tested here: https://github.com/realbigsean/lighthouse/actions/runs/1612821446 Co-authored-by: realbigsean <seananderson33@gmail.com> Co-authored-by: realbigsean <sean@sigmaprime.io>
This commit is contained in:
parent
aaa5344eab
commit
f13e9c3d10
31
.github/workflows/docker-antithesis.yml
vendored
Normal file
31
.github/workflows/docker-antithesis.yml
vendored
Normal file
@ -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}
|
26
testing/antithesis/Dockerfile.libvoidstar
Normal file
26
testing/antithesis/Dockerfile.libvoidstar
Normal file
@ -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
|
BIN
testing/antithesis/libvoidstar/libvoidstar.so
Normal file
BIN
testing/antithesis/libvoidstar/libvoidstar.so
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user