diff --git a/.forgejo/workflows/build-alpine.yml b/.forgejo/workflows/build-alpine.yml
new file mode 100644
index 00000000..b85e3d0e
--- /dev/null
+++ b/.forgejo/workflows/build-alpine.yml
@@ -0,0 +1,40 @@
+on: 
+  - workflow-dispatch
+  - push
+
+jobs:
+  build:
+    runs-on: ubuntu-latest
+    container:
+      image: alpine:edge
+
+    steps:
+      - name: set up dependencies
+        run: |
+          apk update 
+          apk upgrade 
+          apk add nodejs git alpine-sdk doas
+      - uses: actions/checkout@v4
+        with: 
+          sparse-checkout: "alpine/"
+      # - uses: https://code.forgejo.org/actions/checkout
+      
+      - name: set up user 
+        run: adduser -G abuild ci 
+
+      - name: set up keys
+        run: |
+          doas -su ci
+          mkdir ~/.abuild 
+          cat << EOF > ~/.abuild/ci@continuwuity.rsa
+          ${{ secrets.abuild_privkey }}
+          EOF 
+          cat << EOF > ~/.abuild/ci@continuwuity.rsa.pub 
+          ${{ secrets.abuild_pubkey }}
+          EOF 
+          echo $HOME
+          cat << EOF > ~/.abuild/abuild.conf 
+          PACKAGER_PRIVKEY="/home/ci/.abuild/ci@continuwuity.rsa"
+          EOF
+
+# vim: shiftwidth=2