diff --git a/.forgejo/workflows/test.yml b/.forgejo/workflows/test.yml
new file mode 100644
index 0000000..5bef683
--- /dev/null
+++ b/.forgejo/workflows/test.yml
@@ -0,0 +1,35 @@
+name: 'test'
+
+on:
+  push:
+    branches:
+      - 'master'
+  pull_request:
+
+jobs:
+  tests:
+    runs-on: docker
+    
+    strategy:
+      matrix:
+        lisp:
+          - sbcl-bin
+          
+    env:
+      LISP: ${{ matrix.lisp }}
+
+    steps:
+      - uses: actions/checkout@v4
+      - name: Install Roswell
+        env:
+          LISP: ${{ matrix.lisp }}
+        run: |
+          curl -L https://raw.githubusercontent.com/roswell/roswell/master/scripts/install-for-ci.sh | sh
+      - name: Install Qlot
+        run: |
+          ros install fukamachi/qlot
+          PATH="~/.roswell/bin:$PATH"
+      - name: Install dependencies
+        run: qlot install
+      - name: Run tests
+        run: .qlot/bin/rove hsx.asd
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
deleted file mode 100644
index decfc7c..0000000
--- a/.github/workflows/test.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-name: 'test'
-
-on:
-  push:
-    branches:
-      - 'master'
-  pull_request:
-
-jobs:
-  tests:
-    runs-on: ubuntu-latest
-    
-    strategy:
-      matrix:
-        lisp:
-          - sbcl-bin
-          - ccl-bin
-          
-    env:
-      LISP: ${{ matrix.lisp }}
-
-    steps:
-      - uses: actions/checkout@v4
-      - uses: 40ants/setup-lisp@v4
-        with:
-          asdf-system: hsx
-      - uses: 40ants/run-tests@v2
-        with:
-          asdf-system: hsx