diff --git a/.github/workflows/build-aya-bpf.yml b/.github/workflows/build-aya-bpf.yml
new file mode 100644
index 00000000..975cba6f
--- /dev/null
+++ b/.github/workflows/build-aya-bpf.yml
@@ -0,0 +1,33 @@
+name: Build aya-bpf
+
+on:
+  push:
+    branches:
+      - main
+      - ci
+
+  pull_request:
+    branches:
+      - main
+
+env:
+  CARGO_TERM_COLOR: always
+
+jobs:
+  build:
+    runs-on: ubuntu-20.04
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - uses: actions-rs/toolchain@v1
+        with:
+          toolchain: nightly
+
+      - uses: Swatinem/rust-cache@v1
+
+      - name: Build
+        run: cargo +nightly build --verbose
+
+      - name: Run tests
+        run: RUST_BACKTRACE=full cargo +nightly test --verbose
diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-aya.yml
similarity index 96%
rename from .github/workflows/build-test.yml
rename to .github/workflows/build-aya.yml
index 04bf10e6..9b5756a3 100644
--- a/.github/workflows/build-test.yml
+++ b/.github/workflows/build-aya.yml
@@ -1,4 +1,4 @@
-name: Build
+name: Build aya
 
 on:
   push:
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index 4618d6d1..7f72f03f 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -27,10 +27,17 @@ jobs:
           components: rustfmt, clippy
 
       - name: Check formatting
-        run: cargo +nightly fmt --all -- --check
+        run: |
+          cargo +nightly fmt --all -- --check
+          pushd bpf
+          cargo +nightly fmt --all -- --check
+          popd
 
       - name: Run clippy
         run: |
           cargo +nightly clippy -p aya -- --deny warnings
           cargo +nightly clippy -p aya-gen -- --deny warnings
           cargo +nightly clippy -p xtask -- --deny warnings
+          pushd bpf
+          cargo +nightly clippy -p aya-bpf -- --deny warnings
+          popd
\ No newline at end of file