CI for Arm64
Maybe https://dev.to/jeikabu/migrating-to-dockerqemu-2af6 works?
docker run --rm --privileged multiarch/qemu-user-static:register # to setup
docker run -it --rm multiarch/ubuntu-debootstrap:arm64-focal
apt update
apt install -y --no-install-recommends \
libc6 \
libgcc1 \
libgssapi-krb5-2 \
libicu66 \
libssl1.1 \
libstdc++6 \
zlib1g \
curl
export DOTNET_SDK_VERSION=7.0.100-rc.1.22431.12
curl -SLk --output dotnet.tar.gz https://dotnetcli.blob.core.windows.net/dotnet/Sdk/$DOTNET_SDK_VERSION/dotnet-sdk-$DOTNET_SDK_VERSION-linux-arm64.tar.gz
mkdir -p /usr/share/dotnet
tar -v -zxf dotnet.tar.gz -C /usr/share/dotnet
rm dotnet.tar.gz
ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet
# If needed
git clone https://github.com/gfoidl/Base64.git
cd Base64/tests/gfoidl.Base64.Tests
Host: ./build.sh build
dotnet test gfoidl.Base64.Tests.dll
works and even supports AdvSimd 🎉
😢 but on dotnet test gfoidl.Base64.Tests.dll there are always some infra-failures like NullRef-exceptions, etc.
Need to find another way -- maybe https://www.reddit.com/r/docker/comments/c75uhq/comment/esdf06y/?utm_source=share&utm_medium=web2x&context=3
https://www.reddit.com/r/docker/comments/c75uhq/comment/esdf06y/?utm_source=share&utm_medium=web2x&context=3 works a bit better, but still has some strange failure not related to product code and is extremely slow.
I think the best option at the moment is to just rent a arm64-VM (e.g. Google Cloud), install .NET and do build.sh build && build.sh test there.
I did this, all tests passed.