diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 0c7b7b7..dedee28 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -1,87 +1,46 @@
-on: release
-name: Build Release
+on:
+  release:
+    types: [created]
+
 jobs:
-  release-linux-386:
-    name: release linux/386
+  releases-matrix:
+    name: Release Go Binary
     runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        # build and publish in parallel: linux/386, linux/amd64, windows/386, windows/amd64, darwin/386, darwin/amd64
+        goos: [linux, windows, darwin]
+        goarch: ["386", amd64]
     steps:
-    - uses: actions/checkout@master
-    - name: compile and release
-      uses: ngs/go-release.action@v1.0.1
-      env:
-        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        GOARCH: "386"
-        GOOS: linux
-        CMD_PATH: "-a -o wg-ui"
-  release-linux-amd64:
-    name: release linux/amd64
-    runs-on: ubuntu-latest
-    steps:
-    - uses: actions/checkout@master
-    - name: compile and release
-      uses: ngs/go-release.action@v1.0.1
-      env:
-        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        GOARCH: amd64
-        GOOS: linux
-        CMD_PATH: "-a -o wg-ui"
-  release-linux-arm:
-    name: release linux/386
-    runs-on: ubuntu-latest
-    steps:
-    - uses: actions/checkout@master
-    - name: compile and release
-      uses: ngs/go-release.action@v1.0.1
-      env:
-        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        GOARCH: "arm"
-        GOOS: linux
-        CMD_PATH: "-a -o wg-ui"
-  release-linux-arm64:
-    name: release linux/amd64
-    runs-on: ubuntu-latest
-    steps:
-    - uses: actions/checkout@master
-    - name: compile and release
-      uses: ngs/go-release.action@v1.0.1
-      env:
-        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        GOARCH: arm64
-        GOOS: linux
-        CMD_PATH: "-a -o wg-ui"
-  release-darwin-amd64:
-    name: release darwin/amd64
-    runs-on: ubuntu-latest
-    steps:
-    - uses: actions/checkout@master
-    - name: compile and release
-      uses: ngs/go-release.action@v1.0.1
-      env:
-        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        GOARCH: amd64
-        GOOS: darwin
-        CMD_PATH: "-a -o wg-ui"
-  release-windows-386:
-    name: release windows/386
-    runs-on: ubuntu-latest
-    steps:
-    - uses: actions/checkout@master
-    - name: compile and release
-      uses: ngs/go-release.action@v1.0.1
-      env:
-        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        GOARCH: "386"
-        GOOS: windows
-        CMD_PATH: "-a -o wg-ui"
-  release-windows-amd64:
-    name: release windows/amd64
-    runs-on: ubuntu-latest
-    steps:
-    - uses: actions/checkout@master
-    - name: compile and release
-      uses: ngs/go-release.action@v1.0.1
-      env:
-        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        GOARCH: amd64
-        GOOS: windows
-        CMD_PATH: "-a -o wg-ui"
+    # get the source code
+    - uses: actions/checkout@v2
+
+    # set environment
+    - name: Set APP_VERSION env
+      run: echo ::set-env name=APP_VERSION::$(echo ${GITHUB_REF} | rev | cut -d'/' -f 1 | rev )
+    - name: Set BUILD_TIME env
+      run: echo ::set-env name=BUILD_TIME::$(date)
+    - name: Environment Printer
+      uses: managedkaos/print-env@v1.0
+
+    # execute yarn install
+    - uses: borales/actions-yarn@v2.0.0
+      with:
+        cmd: install
+
+     - name: Prepare aseets
+       run: |
+         chmod +x ./prepare_assets.sh
+         ./prepare_assets.sh
+
+    # build and make the releases
+    - uses: wangyoucao577/go-release-action@master
+      with:
+        pre_command: "go get github.com/GeertJohan/go.rice/rice && rice embed-go"
+        github_token: ${{ secrets.GITHUB_TOKEN }}
+        goos: ${{ matrix.goos }}
+        goarch: ${{ matrix.goarch }}
+        goversion: "https://dl.google.com/go/go1.14.2.linux-amd64.tar.gz"
+        binary_name: "wireguard-ui"
+        build_flags: -v
+        ldflags: -X "main.appVersion=${{ env.APP_VERSION }}" -X "main.buildTime=${{ env.BUILD_TIME }}" -X main.gitCommit=${{ github.sha }} -X main.gitRef=${{ github.ref }}
diff --git a/build.sh b/build.sh
deleted file mode 100755
index 88cac6d..0000000
--- a/build.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/sh
-
-set -eux
-
-PROJECT_ROOT="/go/src/github.com/${GITHUB_REPOSITORY}"
-
-mkdir -p $PROJECT_ROOT
-rmdir $PROJECT_ROOT
-ln -s $GITHUB_WORKSPACE $PROJECT_ROOT
-cd $PROJECT_ROOT
-
-sh ./prepare_assets.sh
-go mod download
-go get github.com/GeertJohan/go.rice/rice
-rice embed-go
-
-EXT=''
-
-if [ $GOOS == 'windows' ]; then
-EXT='.exe'
-fi
-
-if [ -x "./build.sh" ]; then
-  OUTPUT=`./build.sh "${CMD_PATH}"`
-else
-  go build "${CMD_PATH}"
-  OUTPUT="${PROJECT_NAME}${EXT}"
-fi
-
-echo ${OUTPUT}