diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml
new file mode 100644
index 0000000..3168f5c
--- /dev/null
+++ b/.github/workflows/e2e.yml
@@ -0,0 +1,23 @@
+name: e2e
+
+on:
+  pull_request:
+    types: [opened, reopened, synchronize]
+
+jobs:
+  e2e:
+    runs-on: ubuntu-latest
+    env:
+      ARCH: amd64
+    steps:
+      - name: Setup java
+        uses: actions/setup-java@v4
+        with:
+          distribution: 'temurin'
+          java-version: '21'
+      - name: Checkout code
+        uses: actions/checkout@v4
+      - name: Build backend
+        run: |
+          bash ./gradlew jibDockerBuild -x :rococo-e2e:test
+          docker image ls
diff --git a/rococo-api/build.gradle b/rococo-api/build.gradle
index 31c0ac6..45d5174 100644
--- a/rococo-api/build.gradle
+++ b/rococo-api/build.gradle
@@ -41,6 +41,9 @@ jib {
     }
 }
 
+tasks.jib.dependsOn test
+tasks.jibDockerBuild.dependsOn test
+
 tasks.named('test') {
     useJUnitPlatform()
 }