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/Android 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: Publish Trunk release uses: softprops/action-gh-release@v1 with: prerelease: true tag_name: "trunk" files: | yggstack-*