diff --git a/.github/workflows/check.yaml b/.github/workflows/check.yaml new file mode 100644 index 0000000..3bc81be --- /dev/null +++ b/.github/workflows/check.yaml @@ -0,0 +1,24 @@ +on: + workflow_dispatch: + push: + branches: main + pull_request: + branches: main + +permissions: + contents: read + +jobs: + check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@master + with: + toolchain: stable + components: clippy, rustfmt + - uses: Swatinem/rust-cache@v2 + - name: Check clippy + run: cargo clippy --workspace -- -D warnings + - name: Check rustfmt + run: cargo fmt --all -- --check diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml new file mode 100644 index 0000000..fc083a8 --- /dev/null +++ b/.github/workflows/test.yaml @@ -0,0 +1,50 @@ +on: + workflow_dispatch: + push: + branches: main + pull_request: + branches: main + +permissions: + contents: read + +jobs: + test: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + include: + - os: ubuntu-latest + target: x86_64-unknown-linux-gnu + toolchain: stable + + - os: ubuntu-latest + target: x86_64-unknown-linux-gnu + toolchain: nightly + steps: + - uses: actions/checkout@v4 + + - name: Install toolchain + uses: dtolnay/rust-toolchain@master + with: + target: ${{ matrix.target }} + toolchain: ${{ matrix.toolchain }} + components: llvm-tools-preview + + - uses: Swatinem/rust-cache@v2 + + - name: Install cargo nextest + uses: taiki-e/install-action@nextest + + - name: Install cargo-llvm-cov + uses: taiki-e/install-action@cargo-llvm-cov + + - name: Install dependencies + uses: awalsh128/cache-apt-pkgs-action@latest + with: + packages: openjdk-8-jdk build-essential python3 python-is-python3 libseccomp-dev libgbm-dev libxkbcommon-x11-0 pkg-config rustc + + - name: Run test + run: | + cargo llvm-cov nextest --no-tests pass --target ${{ matrix.target }}