diff --git a/.forgejo/workflows/test.yml b/.forgejo/workflows/test.yml
new file mode 100644
index 0000000..41b641d
--- /dev/null
+++ b/.forgejo/workflows/test.yml
@@ -0,0 +1,43 @@
+on:
+  pull_request:
+
+# https://doc.rust-lang.org/cargo/guide/continuous-integration.html
+
+env:
+  CARGO_TERM_COLOR: always
+  packages: |
+    cargo-auditable \
+    gst-plugins-bad-dev \
+    gst-plugins-base-dev \
+    gst-plugins-rs \
+    gstreamer-dev \
+    gtk4.0-dev \
+    libadwaita-dev \
+    libseccomp-dev \
+    openssl-dev \
+    webkit2gtk-6.0-dev
+  action_checkout_packages: |
+    nodejs
+
+
+
+jobs:
+  test_alpine_edge:
+    runs-on: docker
+    container:
+      image: alpine:edge
+    steps:
+      - run: apk add ${{ env.action_checkout_packages }}
+      - uses: actions/checkout@v4
+      - run: apk add ${{ env.packages }}
+      - run: cargo test --workspace --all-targets
+
+  test_alpine_stable:
+    runs-on: docker
+    container:
+      image: alpine:latest
+    steps:
+      - run: apk add ${{ env.action_checkout_packages }}
+      - uses: actions/checkout@v4
+      - run: apk add ${{ env.packages }}
+      - run: cargo test --workspace --all-targets