diff --git a/.forgejo/workflows/build-alpine.yml b/.forgejo/workflows/build-alpine.yml
new file mode 100644
index 00000000..480d0ced
--- /dev/null
+++ b/.forgejo/workflows/build-alpine.yml
@@ -0,0 +1,45 @@
+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
+      - uses: actions/checkout@v4
+        with: 
+          sparse-checkout: "alpine/"
+      # - uses: https://code.forgejo.org/actions/checkout
+      
+      - name: set up user 
+        run: adduser -DG abuild ci 
+
+      - name: set up keys
+        run: |
+          pwd
+          mkdir ~/.abuild 
+          echo "${{ secrets.abuild_privkey }}" > ~/.abuild/ci@continuwuity.rsa
+          echo "${{ secrets.abuild_pubkey }}" > ~/.abuild/ci@continuwuity.rsa.pub 
+          echo $HOME
+          echo 'PACKAGER_PRIVKEY="/root/.abuild/ci@continuwuity.rsa"' > ~/.abuild/abuild.conf 
+          ls ~/.abuild
+
+      - name: go go gadget abuild 
+        run: |
+          cd alpine 
+          
+          sed -i '/^source=/c\source="' APKBUILD 
+          echo '/default_prepare/ s:$:cd $srcdir; git clone ${{GITHUB.SERVER_URL}}/${{GITHUB.REPOSITORY}} continuwuity:' 
+          sed -i '/default_prepare/ s:$:cd $srcdir; git clone ${{GITHUB.SERVER_URL}}/${{GITHUB.REPOSITORY}} continuwuity:' APKBUILD
+          cat APKBUILD
+          abuild -F checksum
+
+# vim: shiftwidth=2