diff --git a/.github/workflows/code_quality.yml b/.github/workflows/code_quality.yml new file mode 100644 index 0000000..71f497d --- /dev/null +++ b/.github/workflows/code_quality.yml @@ -0,0 +1,36 @@ +name: Code Quality +on: [pull_request, create] + +jobs: + build: + if: github.event_name == 'pull_request' + name: Code Quality (clippy, rustfmt) + runs-on: ubuntu-latest + strategy: + matrix: + rust: + - stable + target: + - x86_64-unknown-linux-gnu + steps: + - name: Code checkout + uses: actions/checkout@v2 + - name: Install Rust toolchain (${{ matrix.rust }}) + uses: actions-rs/toolchain@v1 + with: + toolchain: ${{ matrix.rust }} + target: ${{ matrix.target }} + override: true + components: rustfmt, clippy + + - name: Install packages + run: sudo apt-get update && sudo apt-get -y install libclang-dev + + - name: Download libkrun.h + run: sudo curl -o /usr/include/libkrun.h https://raw.githubusercontent.com/containers/libkrun/refs/heads/main/include/libkrun.h + + - name: Formatting (rustfmt) + run: cargo fmt -- --check + + - name: Clippy (all features) + run: cargo clippy --all-targets --all-features