diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index bd58e1fe..a3e482a6 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -4,28 +4,27 @@ on: push: pull_request: schedule: - - cron: '0 17 * * 2' + - cron: "0 17 * * 2" jobs: CodeQL-Build: - runs-on: ubuntu-latest steps: - - name: Checkout repository - uses: actions/checkout@v2 - with: - fetch-depth: 2 + - name: Checkout repository + uses: actions/checkout@v2 + with: + fetch-depth: 2 - - name: Initialize CodeQL - uses: github/codeql-action/init@v1 - with: - languages: cpp + - name: Initialize CodeQL + uses: github/codeql-action/init@v1 + with: + languages: cpp - - run: | - ./autogen.sh -s - env CPPFLAGS="-DDEV_MODE=1" ./configure --disable-dependency-tracking - make -j $(nproc) check + - run: | + ./autogen.sh -s + env CPPFLAGS="-DDEV_MODE=1" ./configure --disable-dependency-tracking + make -j $(nproc) check - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v1 + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v1 diff --git a/.github/workflows/dotnet-core.yml b/.github/workflows/dotnet-core.yml index 7cba736c..4cb0d978 100644 --- a/.github/workflows/dotnet-core.yml +++ b/.github/workflows/dotnet-core.yml @@ -3,189 +3,188 @@ name: .NET Package on: push: branches: - - stable - - next + - stable + - next jobs: - build-windows: runs-on: windows-latest steps: - - uses: actions/checkout@v1 - - name: buildbase.bat - run: buildbase.bat ..\vs2019\libsodium.sln 16 - working-directory: builds/msvc/build/ - shell: cmd - - uses: actions/upload-artifact@v2 - with: - name: build-win-x64 - path: bin/x64/Release/v142/dynamic/libsodium.dll - - uses: actions/upload-artifact@v2 - with: - name: build-win-x86 - path: bin/Win32/Release/v142/dynamic/libsodium.dll + - uses: actions/checkout@v1 + - name: buildbase.bat + run: buildbase.bat ..\vs2019\libsodium.sln 16 + working-directory: builds/msvc/build/ + shell: cmd + - uses: actions/upload-artifact@v2 + with: + name: build-win-x64 + path: bin/x64/Release/v142/dynamic/libsodium.dll + - uses: actions/upload-artifact@v2 + with: + name: build-win-x86 + path: bin/Win32/Release/v142/dynamic/libsodium.dll build-linux-glibc: runs-on: ubuntu-latest container: image: ubuntu:20.04 steps: - - name: Set up build environment - run: | - apt-get update && apt-get install -y build-essential - - uses: actions/checkout@v1 - - name: configure - run: ./configure --disable-debug --prefix=$PWD/.libsodium-build - - name: make - run: make - - name: make check - run: make check - - name: make install - run: make install - - name: strip - run: strip --strip-all .libsodium-build/lib/libsodium.so - - uses: actions/upload-artifact@v2 - with: - name: build-linux-x64 - path: .libsodium-build/lib/libsodium.so + - name: Set up build environment + run: | + apt-get update && apt-get install -y build-essential + - uses: actions/checkout@v1 + - name: configure + run: ./configure --disable-debug --prefix=$PWD/.libsodium-build + - name: make + run: make + - name: make check + run: make check + - name: make install + run: make install + - name: strip + run: strip --strip-all .libsodium-build/lib/libsodium.so + - uses: actions/upload-artifact@v2 + with: + name: build-linux-x64 + path: .libsodium-build/lib/libsodium.so build-linux-glibc-arm64: runs-on: ubuntu-latest steps: - - name: Set up build environment - run: | - export DEBIAN_FRONTEND=noninteractive + - name: Set up build environment + run: | + export DEBIAN_FRONTEND=noninteractive - cat <<-EOF | sudo tee /etc/apt/sources.list.d/arm64.list >/dev/null - deb [arch=arm64] http://ports.ubuntu.com/ focal main restricted - deb [arch=arm64] http://ports.ubuntu.com/ focal-updates main restricted - deb [arch=arm64] http://ports.ubuntu.com/ focal universe - deb [arch=arm64] http://ports.ubuntu.com/ focal-updates universe - deb [arch=arm64] http://ports.ubuntu.com/ focal multiverse - deb [arch=arm64] http://ports.ubuntu.com/ focal-updates multiverse - deb [arch=arm64] http://ports.ubuntu.com/ focal-backports main restricted universe multiverse - EOF + cat <<-EOF | sudo tee /etc/apt/sources.list.d/arm64.list >/dev/null + deb [arch=arm64] http://ports.ubuntu.com/ focal main restricted + deb [arch=arm64] http://ports.ubuntu.com/ focal-updates main restricted + deb [arch=arm64] http://ports.ubuntu.com/ focal universe + deb [arch=arm64] http://ports.ubuntu.com/ focal-updates universe + deb [arch=arm64] http://ports.ubuntu.com/ focal multiverse + deb [arch=arm64] http://ports.ubuntu.com/ focal-updates multiverse + deb [arch=arm64] http://ports.ubuntu.com/ focal-backports main restricted universe multiverse + EOF - sudo sed -i 's/deb h/deb [arch=amd64] h/g' /etc/apt/sources.list + sudo sed -i 's/deb h/deb [arch=amd64] h/g' /etc/apt/sources.list - sudo dpkg --add-architecture arm64 + sudo dpkg --add-architecture arm64 - sudo apt-get update && sudo apt-get install -y build-essential qemu-user qemu-user-static gcc-aarch64-linux-gnu g++-aarch64-linux-gnu libstdc++6:arm64 + sudo apt-get update && sudo apt-get install -y build-essential qemu-user qemu-user-static gcc-aarch64-linux-gnu g++-aarch64-linux-gnu libstdc++6:arm64 - - uses: actions/checkout@v1 - - name: configure - run: ./configure --disable-debug --prefix=$PWD/.libsodium-build --host=aarch64-linux-gnu - - name: make - run: make -j $(nproc) + - uses: actions/checkout@v1 + - name: configure + run: ./configure --disable-debug --prefix=$PWD/.libsodium-build --host=aarch64-linux-gnu + - name: make + run: make -j $(nproc) - - name: make check - run: | - make check + - name: make check + run: | + make check - - name: make install - run: make install + - name: make install + run: make install - - name: strip - run: aarch64-linux-gnu-strip --strip-all .libsodium-build/lib/libsodium.so - - uses: actions/upload-artifact@v2 - with: - name: build-linux-arm64 - path: .libsodium-build/lib/libsodium.so + - name: strip + run: aarch64-linux-gnu-strip --strip-all .libsodium-build/lib/libsodium.so + - uses: actions/upload-artifact@v2 + with: + name: build-linux-arm64 + path: .libsodium-build/lib/libsodium.so build-linux-glibc-arm: runs-on: ubuntu-20.04 steps: - - name: Set up build environment - run: | - export DEBIAN_FRONTEND=noninteractive + - name: Set up build environment + run: | + export DEBIAN_FRONTEND=noninteractive - cat <<-EOF | sudo tee /etc/apt/sources.list.d/armhf.list >/dev/null - deb [arch=armhf] http://ports.ubuntu.com/ focal main restricted - deb [arch=armhf] http://ports.ubuntu.com/ focal-updates main restricted - deb [arch=armhf] http://ports.ubuntu.com/ focal universe - deb [arch=armhf] http://ports.ubuntu.com/ focal-updates universe - deb [arch=armhf] http://ports.ubuntu.com/ focal multiverse - deb [arch=armhf] http://ports.ubuntu.com/ focal-updates multiverse - deb [arch=armhf] http://ports.ubuntu.com/ focal-backports main restricted universe multiverse - EOF + cat <<-EOF | sudo tee /etc/apt/sources.list.d/armhf.list >/dev/null + deb [arch=armhf] http://ports.ubuntu.com/ focal main restricted + deb [arch=armhf] http://ports.ubuntu.com/ focal-updates main restricted + deb [arch=armhf] http://ports.ubuntu.com/ focal universe + deb [arch=armhf] http://ports.ubuntu.com/ focal-updates universe + deb [arch=armhf] http://ports.ubuntu.com/ focal multiverse + deb [arch=armhf] http://ports.ubuntu.com/ focal-updates multiverse + deb [arch=armhf] http://ports.ubuntu.com/ focal-backports main restricted universe multiverse + EOF - sudo sed -i 's/deb h/deb [arch=amd64] h/g' /etc/apt/sources.list + sudo sed -i 's/deb h/deb [arch=amd64] h/g' /etc/apt/sources.list - sudo dpkg --add-architecture armhf + sudo dpkg --add-architecture armhf - sudo apt-get update && sudo apt-get install -y build-essential qemu-user qemu-user-static gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf libstdc++6:armhf + sudo apt-get update && sudo apt-get install -y build-essential qemu-user qemu-user-static gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf libstdc++6:armhf - - uses: actions/checkout@v1 - - name: configure - run: ./configure --disable-debug --prefix=$PWD/.libsodium-build --host=arm-linux-gnueabihf - - name: make - run: make -j $(nproc) + - uses: actions/checkout@v1 + - name: configure + run: ./configure --disable-debug --prefix=$PWD/.libsodium-build --host=arm-linux-gnueabihf + - name: make + run: make -j $(nproc) - - name: make check - run: | - make check + - name: make check + run: | + make check - - name: make install - run: make install + - name: make install + run: make install - - name: strip - run: arm-linux-gnueabihf-strip --strip-all .libsodium-build/lib/libsodium.so - - uses: actions/upload-artifact@v2 - with: - name: build-linux-arm - path: .libsodium-build/lib/libsodium.so + - name: strip + run: arm-linux-gnueabihf-strip --strip-all .libsodium-build/lib/libsodium.so + - uses: actions/upload-artifact@v2 + with: + name: build-linux-arm + path: .libsodium-build/lib/libsodium.so build-linux-musl: runs-on: ubuntu-latest container: image: alpine:3.13 steps: - - name: Set up build environment - run: | - apk update - apk add alpine-sdk ca-certificates - - uses: actions/checkout@v1 - - name: configure - run: ./configure --disable-debug --prefix=$PWD/.libsodium-build - - name: make - run: make - - name: make check - run: make check - - name: make install - run: make install - - name: strip - run: strip --strip-all .libsodium-build/lib/libsodium.so - - uses: actions/upload-artifact@v2 - with: - name: build-linux-musl-x64 - path: .libsodium-build/lib/libsodium.so + - name: Set up build environment + run: | + apk update + apk add alpine-sdk ca-certificates + - uses: actions/checkout@v1 + - name: configure + run: ./configure --disable-debug --prefix=$PWD/.libsodium-build + - name: make + run: make + - name: make check + run: make check + - name: make install + run: make install + - name: strip + run: strip --strip-all .libsodium-build/lib/libsodium.so + - uses: actions/upload-artifact@v2 + with: + name: build-linux-musl-x64 + path: .libsodium-build/lib/libsodium.so build-macos: runs-on: macos-latest steps: - - uses: actions/checkout@v1 - - name: configure - run: ./configure --disable-debug --prefix=$PWD/.libsodium-build - - name: make - run: make - - name: make check - run: make check - - name: make install - run: make install - - uses: actions/upload-artifact@v2 - with: - name: build-osx-x64 - path: .libsodium-build/lib/libsodium.dylib + - uses: actions/checkout@v1 + - name: configure + run: ./configure --disable-debug --prefix=$PWD/.libsodium-build + - name: make + run: make + - name: make check + run: make check + - name: make install + run: make install + - uses: actions/upload-artifact@v2 + with: + name: build-osx-x64 + path: .libsodium-build/lib/libsodium.dylib pack: runs-on: ubuntu-latest needs: - - build-windows - - build-linux-glibc - - build-linux-glibc-arm - - build-linux-glibc-arm64 - - build-linux-musl - - build-macos + - build-windows + - build-linux-glibc + - build-linux-glibc-arm + - build-linux-glibc-arm64 + - build-linux-musl + - build-macos container: image: mcr.microsoft.com/dotnet/sdk:5.0 env: @@ -193,48 +192,48 @@ jobs: DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 DOTNET_SYSTEM_GLOBALIZATION_INVARIANT: 1 steps: - - uses: actions/checkout@v1 - - uses: actions/download-artifact@v2 - with: - name: build-win-x64 - path: .libsodium-pack/runtimes/win-x64/native/ - - uses: actions/download-artifact@v2 - with: - name: build-win-x86 - path: .libsodium-pack/runtimes/win-x86/native/ - - uses: actions/download-artifact@v2 - with: - name: build-linux-x64 - path: .libsodium-pack/runtimes/linux-x64/native/ - - uses: actions/download-artifact@v2 - with: - name: build-linux-arm64 - path: .libsodium-pack/runtimes/linux-arm64/native/ - - uses: actions/download-artifact@v2 - with: - name: build-linux-arm - path: .libsodium-pack/runtimes/linux-arm/native/ - - uses: actions/download-artifact@v2 - with: - name: build-linux-musl-x64 - path: .libsodium-pack/runtimes/linux-musl-x64/native/ - - uses: actions/download-artifact@v2 - with: - name: build-osx-x64 - path: .libsodium-pack/runtimes/osx-x64/native/ - - name: Copy files - run: cp AUTHORS ChangeLog LICENSE packaging/dotnet-core/libsodium.pkgproj .libsodium-pack/ - - name: Create NuGet package - run: dotnet pack -c Release .libsodium-pack/libsodium.pkgproj - - uses: actions/upload-artifact@v2 - with: - name: nuget-package - path: .libsodium-pack/bin/Release/*.nupkg + - uses: actions/checkout@v1 + - uses: actions/download-artifact@v2 + with: + name: build-win-x64 + path: .libsodium-pack/runtimes/win-x64/native/ + - uses: actions/download-artifact@v2 + with: + name: build-win-x86 + path: .libsodium-pack/runtimes/win-x86/native/ + - uses: actions/download-artifact@v2 + with: + name: build-linux-x64 + path: .libsodium-pack/runtimes/linux-x64/native/ + - uses: actions/download-artifact@v2 + with: + name: build-linux-arm64 + path: .libsodium-pack/runtimes/linux-arm64/native/ + - uses: actions/download-artifact@v2 + with: + name: build-linux-arm + path: .libsodium-pack/runtimes/linux-arm/native/ + - uses: actions/download-artifact@v2 + with: + name: build-linux-musl-x64 + path: .libsodium-pack/runtimes/linux-musl-x64/native/ + - uses: actions/download-artifact@v2 + with: + name: build-osx-x64 + path: .libsodium-pack/runtimes/osx-x64/native/ + - name: Copy files + run: cp AUTHORS ChangeLog LICENSE packaging/dotnet-core/libsodium.pkgproj .libsodium-pack/ + - name: Create NuGet package + run: dotnet pack -c Release .libsodium-pack/libsodium.pkgproj + - uses: actions/upload-artifact@v2 + with: + name: nuget-package + path: .libsodium-pack/bin/Release/*.nupkg build-test-binaries: runs-on: ubuntu-latest needs: - - pack + - pack container: image: mcr.microsoft.com/dotnet/sdk:5.0 env: @@ -242,75 +241,74 @@ jobs: DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 DOTNET_SYSTEM_GLOBALIZATION_INVARIANT: 1 steps: - - uses: actions/checkout@v1 - - uses: actions/download-artifact@v2 - with: - name: nuget-package - path: .libsodium-pack/ - - name: dotnet new - run: dotnet new console -n Tests -o .libsodium-test/ - - name: dotnet add package libsodium - run: dotnet add .libsodium-test/Tests.csproj package libsodium -s $PWD/.libsodium-pack - - name: Copy files - run: cp -f packaging/dotnet-core/test.cs .libsodium-test/Program.cs - - name: dotnet publish linux-x64 - run: dotnet publish -c Release -r linux-x64 --self-contained true -p:PublishTrimmed=true - working-directory: .libsodium-test/ - - name: dotnet publish linux-arm - run: dotnet publish -c Release -r linux-arm --self-contained true -p:PublishTrimmed=true - working-directory: .libsodium-test/ - - name: dotnet publish linux-arm64 - run: dotnet publish -c Release -r linux-arm64 --self-contained true -p:PublishTrimmed=true - working-directory: .libsodium-test/ - - name: Move Build Output - run: | - mkdir .libsodium-builds - mv .libsodium-test/bin/Release/net5.0/linux-arm/publish .libsodium-builds/linux-arm - mv .libsodium-test/bin/Release/net5.0/linux-arm64/publish .libsodium-builds/linux-arm64 - mv .libsodium-test/bin/Release/net5.0/linux-x64/publish .libsodium-builds/linux-x64 - - uses: actions/upload-artifact@v2 - with: - name: test-builds - path: .libsodium-builds/* + - uses: actions/checkout@v1 + - uses: actions/download-artifact@v2 + with: + name: nuget-package + path: .libsodium-pack/ + - name: dotnet new + run: dotnet new console -n Tests -o .libsodium-test/ + - name: dotnet add package libsodium + run: dotnet add .libsodium-test/Tests.csproj package libsodium -s $PWD/.libsodium-pack + - name: Copy files + run: cp -f packaging/dotnet-core/test.cs .libsodium-test/Program.cs + - name: dotnet publish linux-x64 + run: dotnet publish -c Release -r linux-x64 --self-contained true -p:PublishTrimmed=true + working-directory: .libsodium-test/ + - name: dotnet publish linux-arm + run: dotnet publish -c Release -r linux-arm --self-contained true -p:PublishTrimmed=true + working-directory: .libsodium-test/ + - name: dotnet publish linux-arm64 + run: dotnet publish -c Release -r linux-arm64 --self-contained true -p:PublishTrimmed=true + working-directory: .libsodium-test/ + - name: Move Build Output + run: | + mkdir .libsodium-builds + mv .libsodium-test/bin/Release/net5.0/linux-arm/publish .libsodium-builds/linux-arm + mv .libsodium-test/bin/Release/net5.0/linux-arm64/publish .libsodium-builds/linux-arm64 + mv .libsodium-test/bin/Release/net5.0/linux-x64/publish .libsodium-builds/linux-x64 + - uses: actions/upload-artifact@v2 + with: + name: test-builds + path: .libsodium-builds/* run-test-binaries: runs-on: ubuntu-20.04 needs: - - build-test-binaries + - build-test-binaries env: DOTNET_SYSTEM_GLOBALIZATION_INVARIANT: 1 strategy: matrix: arch: [x64, arm, arm64] steps: - - name: Set up build environment - run: | - export DEBIAN_FRONTEND=noninteractive + - name: Set up build environment + run: | + export DEBIAN_FRONTEND=noninteractive - cat <<-EOF | sudo tee /etc/apt/sources.list.d/multiarch.list >/dev/null - deb [arch=armhf,arm64] http://ports.ubuntu.com/ focal main restricted - deb [arch=armhf,arm64] http://ports.ubuntu.com/ focal-updates main restricted - deb [arch=armhf,arm64] http://ports.ubuntu.com/ focal universe - deb [arch=armhf,arm64] http://ports.ubuntu.com/ focal-updates universe - deb [arch=armhf,arm64] http://ports.ubuntu.com/ focal multiverse - deb [arch=armhf,arm64] http://ports.ubuntu.com/ focal-updates multiverse - deb [arch=armhf,arm64] http://ports.ubuntu.com/ focal-backports main restricted universe multiverse - EOF + cat <<-EOF | sudo tee /etc/apt/sources.list.d/multiarch.list >/dev/null + deb [arch=armhf,arm64] http://ports.ubuntu.com/ focal main restricted + deb [arch=armhf,arm64] http://ports.ubuntu.com/ focal-updates main restricted + deb [arch=armhf,arm64] http://ports.ubuntu.com/ focal universe + deb [arch=armhf,arm64] http://ports.ubuntu.com/ focal-updates universe + deb [arch=armhf,arm64] http://ports.ubuntu.com/ focal multiverse + deb [arch=armhf,arm64] http://ports.ubuntu.com/ focal-updates multiverse + deb [arch=armhf,arm64] http://ports.ubuntu.com/ focal-backports main restricted universe multiverse + EOF - sudo sed -i 's/deb h/deb [arch=amd64] h/g' /etc/apt/sources.list + sudo sed -i 's/deb h/deb [arch=amd64] h/g' /etc/apt/sources.list - sudo dpkg --add-architecture armhf - sudo dpkg --add-architecture arm64 + sudo dpkg --add-architecture armhf + sudo dpkg --add-architecture arm64 - sudo apt-get update && sudo apt-get install -y qemu-user qemu-user-static libstdc++6:armhf libstdc++6:arm64 + sudo apt-get update && sudo apt-get install -y qemu-user qemu-user-static libstdc++6:armhf libstdc++6:arm64 - - uses: actions/download-artifact@v2 - with: - name: test-builds - path: .libsodium-builds/ - - - name: Run ${{ matrix.arch }} - run: | - chmod +x .libsodium-builds/linux-${{ matrix.arch }}/Tests - .libsodium-builds/linux-${{ matrix.arch }}/Tests + - uses: actions/download-artifact@v2 + with: + name: test-builds + path: .libsodium-builds/ + - name: Run ${{ matrix.arch }} + run: | + chmod +x .libsodium-builds/linux-${{ matrix.arch }}/Tests + .libsodium-builds/linux-${{ matrix.arch }}/Tests