From e421d7834934f4588a5ee6d6aeabeb7f69842834 Mon Sep 17 00:00:00 2001 From: Vasyl Gello Date: Sun, 7 Jan 2024 12:33:30 +0200 Subject: [PATCH] Add github action to build trunk executables Signed-off-by: Vasyl Gello --- .github/workflows/trunk.yml | 77 +++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 .github/workflows/trunk.yml diff --git a/.github/workflows/trunk.yml b/.github/workflows/trunk.yml new file mode 100644 index 0000000..d429b0e --- /dev/null +++ b/.github/workflows/trunk.yml @@ -0,0 +1,77 @@ +name: Trunk build + +on: + push: + branch: develop + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + strategy: + fail-fast: false + + name: Build Windows/Linux/MacOS/FreeBSD + + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Set up Go + uses: actions/setup-go@v3 + with: + go-version: "1.21" + + - name: Build static executables + run: | + GOOS=windows GOARCH=arm GOARM=7 ./build ; mv yggstack.exe yggstack-windows-armv7.exe + GOOS=windows GOARCH=arm64 ./build ; mv yggstack.exe yggstack-windows-arm64.exe + GOOS=windows GOARCH=386 ./build ; mv yggstack.exe yggstack-windows-i386.exe + GOOS=windows GOARCH=amd64 ./build ; mv yggstack.exe yggstack-windows-amd64.exe + GOOS=linux GOARCH=386 ./build ; mv yggstack yggstack-linux-i386 + GOOS=linux GOARCH=amd64 ./build ; mv yggstack yggstack-linux-amd64 + GOOS=linux GOARCH=arm GOARM=6 ./build ; mv yggstack yggstack-linux-armv6 + GOOS=linux GOARCH=arm GOARM=7 ./build ; mv yggstack yggstack-linux-armv7 + GOOS=linux GOARCH=arm64 ./build ; mv yggstack yggstack-linux-arm64 + GOOS=linux GOARCH=mips GOMIPS=softfloat ./build ; mv yggstack yggstack-linux-mips-sf + GOOS=linux GOARCH=mipsle GOMIPS=softfloat ./build ; mv yggstack yggstack-linux-mipsle-sf + GOOS=linux GOARCH=mips64 ./build ; mv yggstack yggstack-linux-mips64 + GOOS=linux GOARCH=mips64le ./build ; mv yggstack yggstack-linux-mips64le + GOOS=linux GOARCH=ppc64 ./build ; mv yggstack yggstack-linux-ppc64 + GOOS=linux GOARCH=ppc64le ./build ; mv yggstack yggstack-linux-ppc64le + GOOS=linux GOARCH=riscv64 ./build ; mv yggstack yggstack-linux-riscv64 + GOOS=linux GOARCH=s390x ./build ; mv yggstack yggstack-linux-s390x + GOOS=darwin GOARCH=arm64 ./build ; mv yggstack yggstack-darwin-arm64 + GOOS=darwin GOARCH=amd64 ./build ; mv yggstack yggstack-darwin-amd64 + GOOS=freebsd GOARCH=arm64 ./build ; mv yggstack yggstack-freebsd-arm64 + GOOS=freebsd GOARCH=amd64 ./build ; mv yggstack yggstack-freebsd-amd64 + GOOS=freebsd GOARCH=arm GOARM=6 ./build ; mv yggstack yggstack-freebsd-armv6 + GOOS=freebsd GOARCH=arm GOARM=7 ./build ; mv yggstack yggstack-freebsd-armv7 + GOOS=freebsd GOARCH=386 ./build ; mv yggstack yggstack-freebsd-i386 + GOOS=openbsd GOARCH=arm64 ./build ; mv yggstack yggstack-openbsd-arm64 + GOOS=openbsd GOARCH=amd64 ./build ; mv yggstack yggstack-openbsd-amd64 + GOOS=openbsd GOARCH=arm GOARM=6 ./build ; mv yggstack yggstack-openbsd-armv6 + GOOS=openbsd GOARCH=arm GOARM=7 ./build ; mv yggstack yggstack-openbsd-armv7 + GOOS=openbsd GOARCH=386 ./build ; mv yggstack yggstack-openbsd-i386 + GOOS=netbsd GOARCH=arm64 ./build ; mv yggstack yggstack-netbsd-arm64 + GOOS=netbsd GOARCH=amd64 ./build ; mv yggstack yggstack-netbsd-amd64 + GOOS=netbsd GOARCH=arm GOARM=6 ./build ; mv yggstack yggstack-netbsd-armv6 + GOOS=netbsd GOARCH=arm GOARM=7 ./build ; mv yggstack yggstack-netbsd-armv7 + GOOS=netbsd GOARCH=386 ./build ; mv yggstack yggstack-netbsd-i386 + CC="$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android21-clang" GOOS=android GOARCH=arm64 ./build ; mv yggstack yggstack-android-arm64 + CC="$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android21-clang" GOOS=android GOARCH=amd64 ./build ; mv yggstack yggstack-android-amd64 + CC="$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi21-clang" GOOS=android GOARCH=arm GOARM=7 ./build ; mv yggstack yggstack-android-armv7 + CC="$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android21-clang" GOOS=android GOARCH=386 ./build ; mv yggstack yggstack-android-i386 + #GOOS=ios GOARCH=arm64 CC=$(go env GOROOT)/misc/ios/clangwrap.sh ./build ; mv yggstack yggstack-ios-arm64 + #GOOS=ios GOARCH=amd64 CC=$(go env GOROOT)/misc/ios/clangwrap.sh ./build ; mv yggstack yggstack-ios-amd64 + + - name: Upload artifacts + uses: actions/upload-artifact@v3 + with: + name: Build static executables + path: "yggstack-*" + if-no-files-found: error