From 749f8fd050e32aea990289aa873c2170cf057166 Mon Sep 17 00:00:00 2001 From: Juozas Vainauskas <71255955+JuozasVainauskas@users.noreply.github.com> Date: Sat, 11 Nov 2023 23:30:22 +0200 Subject: [PATCH] ci: run tests --- .github/workflows/run-tests.yaml | 18 ++++++++++++++++++ Dockerfile | 9 +++++++++ README.md | 14 ++++++++++++++ 3 files changed, 41 insertions(+) create mode 100644 .github/workflows/run-tests.yaml diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml new file mode 100644 index 0000000..d315a1b --- /dev/null +++ b/.github/workflows/run-tests.yaml @@ -0,0 +1,18 @@ +name: Run tests +run-name: Run tests +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + run-tests: + runs-on: ubuntu-22.04 + steps: + - name: Check out source Repo + uses: actions/checkout@v3 + - name: Build test container image + run: docker build -t test_image . + - name: Run tests in container image + run: docker run --rm -i test_image cargo test diff --git a/Dockerfile b/Dockerfile index fca0812..ae66df3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,15 +2,24 @@ FROM rust:1.73-slim-bullseye WORKDIR /builder +RUN apt-get update && \ + apt-get install -y --no-install-recommends qemu-system=1:5.2+dfsg-11+deb11u3 && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* + COPY ./.cargo ./.cargo COPY ./src ./src COPY ./Cargo.toml . COPY ./Cargo.lock . COPY ./rust-toolchain.toml . COPY ./x86_64-os.json . +COPY ./tests ./tests RUN cargo install bootimage && \ + rustup toolchain install nightly-aarch64-unknown-linux-gnu && \ + rustup toolchain install nightly-x86_64-unknown-linux-gnu && \ rustup component add rust-src --toolchain nightly-aarch64-unknown-linux-gnu && \ + rustup component add rust-src --toolchain nightly-x86_64-unknown-linux-gnu && \ rustup component add llvm-tools-preview CMD ["cargo","bootimage"] diff --git a/README.md b/README.md index 2b244d7..6ace164 100644 --- a/README.md +++ b/README.md @@ -39,3 +39,17 @@ Hobby OS implementation in Rust ```bash qemu-system-x86_64 -drive format=raw,file=target/x86_64-os/debug/bootimage-os.bin ``` + +## Tests + +Run tests in Docker: + +```bash +docker run --rm -it $(docker build -q .) cargo test +``` + +Run tests on host system: + +```bash +cargo test +```