From 5de09e12e08fe2afefd3265630db4eb7cc161c9c Mon Sep 17 00:00:00 2001 From: Felicitas Pojtinger Date: Sun, 26 Dec 2021 15:45:34 +0100 Subject: [PATCH] build: Add 32-bit Windows support --- .github/workflows/hydrun.yaml | 10 ++++++++-- Hydrunfile | 22 ++++++++++++++++------ 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/.github/workflows/hydrun.yaml b/.github/workflows/hydrun.yaml index 2d5e5e5..e969064 100644 --- a/.github/workflows/hydrun.yaml +++ b/.github/workflows/hydrun.yaml @@ -18,11 +18,17 @@ jobs: flags: -e '--privileged' cmd: ./Hydrunfile dst: out/* - - id: stfs-windows + - id: stfs-windows-x86_64 src: . os: fedora:35 flags: -e '--privileged' - cmd: ./Hydrunfile windows + cmd: ./Hydrunfile windows x86_64 + dst: out/* + - id: stfs-windows-i686 + src: . + os: fedora:35 + flags: -e '--privileged' + cmd: ./Hydrunfile windows i686 dst: out/* steps: diff --git a/Hydrunfile b/Hydrunfile index ad02f12..353e85f 100755 --- a/Hydrunfile +++ b/Hydrunfile @@ -12,24 +12,34 @@ if [ "$1" = "windows" ]; then curl -L -o /tmp/msys2.exe 'https://github.com/msys2/msys2-installer/releases/download/2021-11-30/msys2-base-x86_64-20211130.sfx.exe' wine64 /tmp/msys2.exe x -y -oC:/ - # Fix MSYS2 TLS + # Fix MSYS2 sed -i ~/.wine/drive_c/msys64/etc/pacman.conf -e 's/SigLevel = Required/SigLevel = Never/g' cat /etc/pki/tls/certs/ca-bundle.crt >~/.wine/drive_c/msys64/usr/ssl/certs/ca-bundle.crt cat /etc/pki/tls/certs/ca-bundle.trust.crt >~/.wine/drive_c/msys64/usr/ssl/certs/ca-bundle.trust.crt - - # Install GCC and Go export WINEPATH='c:\msys64\usr\bin' - wine64 bash.exe -c 'pacman --verbose --debug --noconfirm --ignore pacman --needed -S base-devel mingw-w64-x86_64-gcc mingw-w64-x86_64-go' # Copy source code to directory on C drive mkdir -p ~/.wine/drive_c/users/root/Documents/stfs cp -rf . ~/.wine/drive_c/users/root/Documents/stfs mkdir -p ~/.wine/drive_c/users/root/go - wine64 bash.exe -c 'export PATH="$PATH:/mingw64/bin" && cd /c/users/root/Documents/stfs && export GOPATH="/c/users/root/go" && export GOROOT="/mingw64/lib/go" && go build -o out/stfs.windows-x86_64 ./cmd/stfs' + if [ "$2" = "x86_64" ]; then + # Install GCC and Go + wine64 bash.exe -c 'pacman --verbose --debug --noconfirm --ignore pacman --needed -S base-devel mingw-w64-x86_64-gcc mingw-w64-x86_64-go' + # Build + wine64 bash.exe -c 'export PATH="$PATH:/mingw64/bin" && cd /c/users/root/Documents/stfs && export GOPATH="/c/users/root/go" && export GOROOT="/mingw64/lib/go" export GOARCH=amd64 && go build -o out/stfs.windows-x86_64.exe ./cmd/stfs' + else + # Install GCC and Go + wine64 bash.exe -c 'pacman --verbose --debug --noconfirm --ignore pacman --needed -S base-devel mingw-w64-i686-gcc mingw-w64-i686-go' + + # Build + wine64 bash.exe -c 'export PATH="$PATH:/mingw32/bin" && cd /c/users/root/Documents/stfs && export GOPATH="/c/users/root/go" && export GOROOT="/mingw32/lib/go" && export GOARCH=386 && go build -o out/stfs.windows-i686.exe ./cmd/stfs' + fi + + # Copy binaries to staging directory mkdir -p out - cp -f ~/.wine/drive_c/users/root/Documents/stfs/out/* out + yes | cp -f ~/.wine/drive_c/users/root/Documents/stfs/out/* out exit 0 fi