diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index bf43ea4..a37b58b 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -1,6 +1,5 @@ -# .github/workflows/release.yaml - -on: +name: Build and publish binaries (releases only) +on: release: types: [created] @@ -10,7 +9,6 @@ jobs: 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] goarch: ["386", amd64] steps: diff --git a/.github/workflows/release_arm.yaml b/.github/workflows/release_arm.yaml new file mode 100644 index 0000000..386feae --- /dev/null +++ b/.github/workflows/release_arm.yaml @@ -0,0 +1,28 @@ +name: Build and publish arm binaries (releases only) +on: + release: + types: [created] + +jobs: + releases-matrix: + name: Release Go Binary + runs-on: ubuntu-latest + env: + CGO_ENABLED: 1 + strategy: + matrix: + goos: [linux] + goarch: ["arm", "arm64"] + steps: + - name: checkout code + uses: actions/checkout@v2 + - name: build binaries + uses: wangyoucao577/go-release-action@v1.20 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + goos: ${{ matrix.goos }} + goarch: ${{ matrix.goarch }} + build_command: bash ./build_arm.sh + pre_command: bash ./install-deps_arm.sh + binary_name: "openvpn-user-${{ matrix.goarch }}" + asset_name: openvpn-user-${{ matrix.goos }}-${{ matrix.goarch }}. diff --git a/build_arm.sh b/build_arm.sh new file mode 100755 index 0000000..3417c82 --- /dev/null +++ b/build_arm.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +if [[ "$GOOS" == "linux" ]]; then + if [[ "$GOARCH" == "arm" ]]; then + CC=arm-linux-gnueabi-gcc CGO_ENABLED=1 GOOS=linux GOARCH=arm go build -ldflags "-linkmode external -extldflags -static -s -w" -o openvpn-user-arm + fi + if [[ "$GOARCH" == "arm64" ]]; then + CC=aarch64-linux-gnu-gcc CGO_ENABLED=1 GOOS=linux GOARCH=arm64 go build -ldflags "-linkmode external -extldflags -static -s -w" -o openvpn-user-arm64 + fi +fi diff --git a/install-deps-arm.sh b/install-deps-arm.sh new file mode 100755 index 0000000..df975fd --- /dev/null +++ b/install-deps-arm.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +apt-get update +apt-get install -y gcc gcc-multilib sqlite3 libc6-dev-arm64-cross gcc-arm-linux-gnueabi gcc-aarch64-linux-gnu diff --git a/install-deps.sh b/install-deps.sh index 72333d2..d06d4d8 100644 --- a/install-deps.sh +++ b/install-deps.sh @@ -1,5 +1,4 @@ #!/usr/bin/env bash -set -e apt-get update apt-get install -y gcc gcc-multilib sqlite3 diff --git a/openvpn-user.go b/openvpn-user.go index 1e17a20..c618615 100644 --- a/openvpn-user.go +++ b/openvpn-user.go @@ -11,7 +11,7 @@ import ( ) const ( - version = "1.0.3-rc.1" + version = "1.0.3" ) var (