Use golang:1.21-buster for glibc stuff #103
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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-static/MacOS/FreeBSD/Android | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: "1.21" | |
- name: Build yggstack executables | |
run: | | |
echo "::group::yggstack-windows-armv7.exe" | |
GOOS=windows GOARCH=arm GOARM=7 ./build -o yggstack-windows-armv7.exe | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-windows-arm64.exe" | |
GOOS=windows GOARCH=arm64 ./build -o yggstack-windows-arm64.exe | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-windows-i386.exe" | |
GOOS=windows GOARCH=386 ./build -o yggstack-windows-i386.exe | |
GOOS=windows GOARCH=386 ./build -o yggstack-windows-386.exe | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-windows-amd64.exe" | |
GOOS=windows GOARCH=amd64 ./build -o yggstack-windows-amd64.exe | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-linux-i386-static" | |
CGO_ENABLED=0 GOOS=linux GOARCH=386 ./build -s -o yggstack-linux-i386-static | |
CGO_ENABLED=0 GOOS=linux GOARCH=386 ./build -s -o yggstack-linux-386-static | |
ldd yggstack-linux-i386-static || echo "OK" | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-linux-amd64-static" | |
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 ./build -s -o yggstack-linux-amd64-static | |
ldd yggstack-linux-amd64-static || echo "OK" | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-linux-armv6-static" | |
CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=6 ./build -s -o yggstack-linux-armv6-static | |
ldd yggstack-linux-armv6-static || echo "OK" | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-linux-armv7-static" | |
CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=7 ./build -s -o yggstack-linux-armv7-static | |
ldd yggstack-linux-armv7-static || echo "OK" | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-linux-arm64-static" | |
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 ./build -s -o yggstack-linux-arm64-static | |
ldd yggstack-linux-arm64-static || echo "OK" | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-linux-mips-sf-static" | |
CGO_ENABLED=0 GOOS=linux GOARCH=mips GOMIPS=softfloat ./build -s -o yggstack-linux-mips-sf-static | |
ldd yggstack-linux-mips-sf-static || echo "OK" | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-linux-mipsle-sf-static" | |
CGO_ENABLED=0 GOOS=linux GOARCH=mipsle GOMIPS=softfloat ./build -s -o yggstack-linux-mipsle-sf-static | |
ldd yggstack-linux-mipsle-sf-static || echo "OK" | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-linux-mips64-static" | |
CGO_ENABLED=0 GOOS=linux GOARCH=mips64 ./build -s -o yggstack-linux-mips64-static | |
ldd yggstack-linux-mips64-static || echo "OK" | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-linux-mips64le-static" | |
CGO_ENABLED=0 GOOS=linux GOARCH=mips64le ./build -s -o yggstack-linux-mips64le-static | |
ldd yggstack-linux-mips64le-static || echo "OK" | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-linux-ppc64-static" | |
CGO_ENABLED=0 GOOS=linux GOARCH=ppc64 ./build -s -o yggstack-linux-ppc64-static | |
ldd yggstack-linux-ppc64-static || echo "OK" | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-linux-ppc64le-static" | |
CGO_ENABLED=0 GOOS=linux GOARCH=ppc64le ./build -s -o yggstack-linux-ppc64le-static | |
ldd yggstack-linux-ppc64le-static || echo "OK" | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-linux-riscv64-static" | |
CGO_ENABLED=0 GOOS=linux GOARCH=riscv64 ./build -s -o yggstack-linux-riscv64-static | |
ldd yggstack-linux-riscv64-static || echo "OK" | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-linux-s390x-static" | |
CGO_ENABLED=0 GOOS=linux GOARCH=s390x ./build -s -o yggstack-linux-s390x-static | |
ldd yggstack-linux-s390x-static || echo "OK" | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-darwin-arm64" | |
GOOS=darwin GOARCH=arm64 ./build -o yggstack-darwin-arm64 | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-darwin-amd64" | |
GOOS=darwin GOARCH=amd64 ./build -o yggstack-darwin-amd64 | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-freebsd-arm64" | |
GOOS=freebsd GOARCH=arm64 ./build -o yggstack-freebsd-arm64 | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-freebsd-amd64" | |
GOOS=freebsd GOARCH=amd64 ./build -o yggstack-freebsd-amd64 | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-freebsd-armv6" | |
GOOS=freebsd GOARCH=arm GOARM=6 ./build -o yggstack-freebsd-armv6 | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-freebsd-armv7" | |
GOOS=freebsd GOARCH=arm GOARM=7 ./build -o yggstack-freebsd-armv7 | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-freebsd-i386" | |
GOOS=freebsd GOARCH=386 ./build -o yggstack-freebsd-i386 | |
GOOS=freebsd GOARCH=386 ./build -o yggstack-freebsd-386 | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-openbsd-arm64" | |
GOOS=openbsd GOARCH=arm64 ./build -o yggstack-openbsd-arm64 | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-openbsd-amd64" | |
GOOS=openbsd GOARCH=amd64 ./build -o yggstack-openbsd-amd64 | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-openbsd-armv6" | |
GOOS=openbsd GOARCH=arm GOARM=6 ./build -o yggstack-openbsd-armv6 | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-openbsd-armv7" | |
GOOS=openbsd GOARCH=arm GOARM=7 ./build -o yggstack-openbsd-armv7 | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-openbsd-i386" | |
GOOS=openbsd GOARCH=386 ./build -o yggstack-openbsd-i386 | |
GOOS=openbsd GOARCH=386 ./build -o yggstack-openbsd-386 | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-netbsd-arm64" | |
GOOS=netbsd GOARCH=arm64 ./build -o yggstack-netbsd-arm64 | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-netbsd-amd64" | |
GOOS=netbsd GOARCH=amd64 ./build -o yggstack-netbsd-amd64 | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-netbsd-armv6" | |
GOOS=netbsd GOARCH=arm GOARM=6 ./build -o yggstack-netbsd-armv6 | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-netbsd-armv7" | |
GOOS=netbsd GOARCH=arm GOARM=7 ./build -o yggstack-netbsd-armv7 | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-netbsd-i386" | |
GOOS=netbsd GOARCH=386 ./build -o yggstack-netbsd-i386 | |
GOOS=netbsd GOARCH=386 ./build -o yggstack-netbsd-386 | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-android-arm64" | |
CGO_ENABLED=1 CC="$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android21-clang" GOOS=android GOARCH=arm64 ./build -o yggstack-android-arm64 | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-android-amd64" | |
CGO_ENABLED=1 CC="$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android21-clang" GOOS=android GOARCH=amd64 ./build -o yggstack-android-amd64 | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-android-armv7" | |
CGO_ENABLED=1 CC="$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi21-clang" GOOS=android GOARCH=arm GOARM=7 ./build -o yggstack-android-armv7 | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-android-i386" | |
CGO_ENABLED=1 CC="$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android21-clang" GOOS=android GOARCH=386 ./build -o yggstack-android-i386 | |
CGO_ENABLED=1 CC="$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android21-clang" GOOS=android GOARCH=386 ./build -o yggstack-android-386 | |
echo "::endgroup::" | |
# | |
#echo "::group::yggstack-ios-arm64" | |
#GOOS=ios GOARCH=arm64 CC=$(go env GOROOT)/misc/ios/clangwrap.sh ./build -o yggstack-ios-arm64 | |
#echo "::endgroup::" | |
# | |
#echo "::group::yggstack-ios-amd64" | |
#GOOS=ios GOARCH=amd64 CC=$(go env GOROOT)/misc/ios/clangwrap.sh ./build -o yggstack-ios-amd64 | |
#echo "::endgroup::" | |
- name: Upload artifacts | |
uses: actions/upload-artifact@master | |
with: | |
name: yggstack-allnoglibc | |
path: yggstack-* | |
build-linux-glibc: | |
strategy: | |
fail-fast: false | |
name: Build Linux-glibc | |
runs-on: ubuntu-latest | |
container: | |
image: jumpserver/golang:1.21-buster | |
volumes: | |
- ${PWD}:/workspace | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Build yggstack executables | |
run: | | |
echo "::group::yggstack-linux-i386" | |
GOOS=linux GOARCH=386 ./build -o yggstack-linux-i386 | |
GOOS=linux GOARCH=386 ./build -o yggstack-linux-386 | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-linux-amd64" | |
GOOS=linux GOARCH=amd64 ./build -o yggstack-linux-amd64 | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-linux-armv6" | |
GOOS=linux GOARCH=arm GOARM=6 ./build -o yggstack-linux-armv6 | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-linux-armv7" | |
GOOS=linux GOARCH=arm GOARM=7 ./build -o yggstack-linux-armv7 | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-linux-arm64" | |
GOOS=linux GOARCH=arm64 ./build -o yggstack-linux-arm64 | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-linux-mips-sf" | |
GOOS=linux GOARCH=mips GOMIPS=softfloat ./build -o yggstack-linux-mips-sf | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-linux-mipsle-sf" | |
GOOS=linux GOARCH=mipsle GOMIPS=softfloat ./build -o yggstack-linux-mipsle-sf | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-linux-mips64" | |
GOOS=linux GOARCH=mips64 ./build -o yggstack-linux-mips64 | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-linux-mips64le" | |
GOOS=linux GOARCH=mips64le ./build -o yggstack-linux-mips64le | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-linux-ppc64" | |
GOOS=linux GOARCH=ppc64 ./build -o yggstack-linux-ppc64 | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-linux-ppc64le" | |
GOOS=linux GOARCH=ppc64le ./build -o yggstack-linux-ppc64le | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-linux-riscv64" | |
GOOS=linux GOARCH=riscv64 ./build -o yggstack-linux-riscv64 | |
echo "::endgroup::" | |
# | |
echo "::group::yggstack-linux-s390x" | |
GOOS=linux GOARCH=s390x ./build -o yggstack-linux-s390x | |
echo "::endgroup::" | |
# | |
- name: Upload artifacts | |
uses: actions/upload-artifact@master | |
with: | |
name: yggstack-linuxglibc | |
path: yggstack-* | |
publish: | |
strategy: | |
fail-fast: false | |
needs: | |
- build | |
- build-linux-glibc | |
permissions: | |
contents: write | |
packages: write | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download artifacts (all excluding glibc) | |
uses: actions/download-artifact@master | |
with: | |
name: yggstack-allnoglibc | |
- name: Download artifacts (linux glibc) | |
uses: actions/download-artifact@master | |
with: | |
name: yggstack-linuxglibc | |
- name: Publish release | |
run: | | |
gh release create trunk --prerelease yggstack-* || gh release upload trunk yggstack-* --clobber | |
env: | |
GH_TOKEN: ${{ github.token }} | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Login to GitHub Container Registry | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push yggstack container image | |
uses: docker/build-push-action@v6 | |
with: | |
context: . | |
file: Dockerfile.static | |
platforms: linux/386, linux/amd64, linux/arm/v6, linux/arm/v7, linux/arm64, linux/ppc64le, linux/riscv64, linux/s390x | |
push: true | |
tags: ghcr.io/yggdrasil-network/yggstack:trunk |