diff --git a/.github/workflows/dotnet-core.yml b/.github/workflows/dotnet-core.yml index fc1b45eb53..ce83fa34c1 100644 --- a/.github/workflows/dotnet-core.yml +++ b/.github/workflows/dotnet-core.yml @@ -7,7 +7,7 @@ on: - next jobs: - build-windows: + build-windows-msvc: runs-on: windows-latest steps: - uses: actions/checkout@v4 @@ -24,7 +24,7 @@ jobs: name: build-win-x86 path: bin/Win32/Release/v143/dynamic/libsodium.dll - build-linux-glibc-x64: + build-others: runs-on: ubuntu-latest steps: - name: Install Zig @@ -32,9 +32,18 @@ jobs: with: version: master - uses: actions/checkout@v4 - - name: build + + - name: build-win-arm64 + run: | + rm -fr zig-out zig-cache; zig build -Doptimize=ReleaseFast -Dtarget=aarch64-windows + - uses: actions/upload-artifact@v3 + with: + name: build-win-arm64 + path: zig-out/lib/libsodium.dll + + - name: build-linux-x64 run: | - zig build -Doptimize=ReleaseFast -Dtarget=x86_64-linux-gnu.2.17 + rm -fr zig-out zig-cache; zig build -Doptimize=ReleaseFast -Dtarget=x86_64-linux-gnu.2.17 - name: tests run: cd zig-out/bin && ./run.sh - uses: actions/upload-artifact@v3 @@ -42,26 +51,23 @@ jobs: name: build-linux-x64 path: zig-out/lib/libsodium.so - build-linux-glibc-arm: - runs-on: ubuntu-latest - steps: - - name: Install Zig - uses: goto-bus-stop/setup-zig@2a9625d550eefc3a9b1a43d342ad655f563f8241 - with: - version: master - - name: Set up emulation environment + - name: Set up arm and aarch64 emulation environment run: | export DEBIAN_FRONTEND=noninteractive sudo apt-get update - sudo apt-get install -y build-essential qemu binfmt-support qemu-user-static qemu-system-arm gcc-arm-linux-gnueabihf libc6-armhf-cross + sudo apt-get install -y build-essential qemu binfmt-support qemu-user-static qemu-system-arm gcc-arm-linux-gnueabihf libc6-armhf-cross gcc-aarch64-linux-gnu libc6-arm64-cross sudo dpkg --add-architecture armhf sudo update-binfmts --enable qemu-arm sudo update-binfmts --display sudo ln -s /usr/arm-linux-gnueabihf/lib/ld-linux-armhf.so.* /lib - - uses: actions/checkout@v4 - - name: build + sudo dpkg --add-architecture arm64 + sudo update-binfmts --enable qemu-aarch64 + sudo update-binfmts --display + sudo ln -s /usr/aarch64-linux-gnu/lib/ld-linux-aarch64.so.* /lib + + - name: build-linux-arm run: | - zig build -Doptimize=ReleaseFast -Dtarget=arm-linux-gnueabihf.2.23 + rm -fr zig-out zig-cache; zig build -Doptimize=ReleaseFast -Dtarget=arm-linux-gnueabihf.2.23 - name: tests run: | cd zig-out/bin && env LD_LIBRARY_PATH=/usr/arm-linux-gnueabihf/lib ./run.sh @@ -70,26 +76,9 @@ jobs: name: build-linux-arm path: zig-out/lib/libsodium.so - build-linux-glibc-arm64: - runs-on: ubuntu-latest - steps: - - name: Install Zig - uses: goto-bus-stop/setup-zig@2a9625d550eefc3a9b1a43d342ad655f563f8241 - with: - version: master - - name: Set up emulation environment + - name: build-linux-arm64 run: | - export DEBIAN_FRONTEND=noninteractive - sudo apt-get update - sudo apt-get install -y qemu binfmt-support qemu-user-static qemu-system-arm gcc-aarch64-linux-gnu libc6-arm64-cross - sudo dpkg --add-architecture arm64 - sudo update-binfmts --enable qemu-aarch64 - sudo update-binfmts --display - sudo ln -s /usr/aarch64-linux-gnu/lib/ld-linux-aarch64.so.* /lib - - uses: actions/checkout@v4 - - name: build - run: | - zig build -Doptimize=ReleaseFast -Dtarget=aarch64-linux-gnu.2.23 + rm -fr zig-out zig-cache; zig build -Doptimize=ReleaseFast -Dtarget=aarch64-linux-gnu.2.23 - name: tests run: | cd zig-out/bin && env LD_LIBRARY_PATH=/usr/aarch64-linux-gnu/lib ./run.sh @@ -98,100 +87,69 @@ jobs: name: build-linux-arm64 path: zig-out/lib/libsodium.so - build-linux-musl-x64: - runs-on: ubuntu-latest - container: - image: alpine:3.13 - steps: - - name: Set up build environment - run: | - apk update - apk add alpine-sdk ca-certificates xz - - name: Install Zig - uses: goto-bus-stop/setup-zig@2a9625d550eefc3a9b1a43d342ad655f563f8241 - with: - version: master - - uses: actions/checkout@v4 - - name: build - run: | - zig build -Doptimize=ReleaseFast -Dtarget=x86_64-linux-musl - - name: tests + - name: build-linux-musl-x64 run: | - cd zig-out/bin && ./run.sh + rm -fr zig-out zig-cache; zig build -Doptimize=ReleaseFast -Dtarget=x86_64-linux-musl - uses: actions/upload-artifact@v3 with: name: build-linux-musl-x64 path: zig-out/lib/libsodium.a - build-linux-musl-arm: - runs-on: ubuntu-latest - steps: - - name: Install Zig - uses: goto-bus-stop/setup-zig@2a9625d550eefc3a9b1a43d342ad655f563f8241 - with: - version: master - - uses: actions/checkout@v4 - - name: build + - name: build-linux-musl-arm run: | - zig build -Doptimize=ReleaseFast -Dtarget=arm-linux-musleabihf + rm -fr zig-out zig-cache; zig build -Doptimize=ReleaseFast -Dtarget=arm-linux-musleabihf - uses: actions/upload-artifact@v3 with: name: build-linux-musl-arm path: zig-out/lib/libsodium.a - build-linux-musl-arm64: - runs-on: ubuntu-latest - steps: - - name: Install Zig - uses: goto-bus-stop/setup-zig@2a9625d550eefc3a9b1a43d342ad655f563f8241 - with: - version: master - - uses: actions/checkout@v4 - - name: build + - name: build-linux-musl-arm64 run: | - zig build -Doptimize=ReleaseFast -Dtarget=aarch64-linux-musl + rm -fr zig-out zig-cache; zig build -Doptimize=ReleaseFast -Dtarget=aarch64-linux-musl - uses: actions/upload-artifact@v3 with: name: build-linux-musl-arm64 path: zig-out/lib/libsodium.a - build-apple: + build-macos-x64: runs-on: macos-latest steps: - uses: actions/checkout@v4 - - name: build-xcframework - run: env LIBSODIUM_FULL_BUILD=1 LIBSODIUM_SKIP_SIMULATORS=1 dist-build/apple-xcframework.sh - - uses: actions/upload-artifact@v3 - with: - name: build-macos - path: libsodium-apple/macos/lib/libsodium.a - - uses: actions/upload-artifact@v3 - with: - name: build-ios - path: libsodium-apple/ios/lib/libsodium.a + - name: configure + run: env CFLAGS="-Ofast -arch x86_64 -mmacosx-version-min=10.15" LDFLAGS="-arch x86_64 -mmacosx-version-min=10.15" ./configure --host=arm-apple-darwin20 --prefix=$PWD/.libsodium-build + - name: make + run: make + - name: make check + run: make check + - name: make install + run: make install - uses: actions/upload-artifact@v3 with: - name: build-tvos - path: libsodium-apple/tvos/lib/libsodium.a + name: build-osx-x64 + path: .libsodium-build/lib/libsodium.dylib + + build-macos-arm64: + runs-on: macos-latest + steps: + - uses: actions/checkout@v4 + - name: configure + run: env CFLAGS="-Ofast -arch arm64 -mmacosx-version-min=10.15" LDFLAGS="-arch arm64 -mmacosx-version-min=10.15" ./configure --host=arm-apple-darwin20 --prefix=$PWD/.libsodium-build + - name: make + run: make + - name: make install + run: make install - uses: actions/upload-artifact@v3 with: - name: build-maccatalyst - path: libsodium-apple/catalyst/lib/libsodium.a - -# The list of .NET targets can be found here: -# https://learn.microsoft.com/en-us/dotnet/core/rid-catalog + name: build-osx-arm64 + path: .libsodium-build/lib/libsodium.dylib pack: runs-on: ubuntu-latest needs: - - build-windows - - build-linux-glibc-x64 - - build-linux-glibc-arm - - build-linux-glibc-arm64 - - build-linux-musl-x64 - - build-linux-musl-arm - - build-linux-musl-arm64 - - build-apple + - build-windows-msvc + - build-others + - build-macos-x64 + - build-macos-arm64 container: image: mcr.microsoft.com/dotnet/sdk:6.0 env: @@ -210,16 +168,20 @@ jobs: path: .libsodium-pack/runtimes/win-x86/native/ - uses: actions/download-artifact@v3 with: - name: build-linux-x64 - path: .libsodium-pack/runtimes/linux-x64/native/ + name: build-win-arm64 + path: .libsodium-pack/runtimes/win-arm64/native/ - uses: actions/download-artifact@v3 with: - name: build-linux-arm - path: .libsodium-pack/runtimes/linux-arm/native/ + name: build-linux-x64 + path: .libsodium-pack/runtimes/linux-x64/native/ - uses: actions/download-artifact@v3 with: name: build-linux-arm64 path: .libsodium-pack/runtimes/linux-arm64/native/ + - uses: actions/download-artifact@v3 + with: + name: build-linux-arm + path: .libsodium-pack/runtimes/linux-arm/native/ - uses: actions/download-artifact@v3 with: name: build-linux-musl-x64 @@ -234,28 +196,12 @@ jobs: path: .libsodium-pack/runtimes/linux-musl-arm64/native/ - uses: actions/download-artifact@v3 with: - name: build-macos + name: build-osx-x64 path: .libsodium-pack/runtimes/osx-x64/native/ - uses: actions/download-artifact@v3 with: - name: build-macos + name: build-osx-arm64 path: .libsodium-pack/runtimes/osx-arm64/native/ - - uses: actions/download-artifact@v3 - with: - name: build-ios - path: .libsodium-pack/runtimes/ios-arm64/native/ - - uses: actions/download-artifact@v3 - with: - name: build-tvos - path: .libsodium-pack/runtimes/tvos-arm64/native/ - - uses: actions/download-artifact@v3 - with: - name: build-maccatalyst - path: .libsodium-pack/runtimes/maccatalyst-x64/native/ - - uses: actions/download-artifact@v3 - with: - name: build-maccatalyst - path: .libsodium-pack/runtimes/maccatalyst-arm64/native/ - name: Copy files run: cp AUTHORS ChangeLog LICENSE packaging/dotnet-core/libsodium.pkgproj .libsodium-pack/ - name: Create NuGet package diff --git a/packaging/dotnet-core/libsodium.pkgproj b/packaging/dotnet-core/libsodium.pkgproj index 6b7d5078ab..eb7bdb6f5e 100644 --- a/packaging/dotnet-core/libsodium.pkgproj +++ b/packaging/dotnet-core/libsodium.pkgproj @@ -27,6 +27,7 @@ +