diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 50b98f839..335f53d65 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -6,80 +6,6 @@ on: - workflow_dispatch jobs: - Linux: - runs-on: ubuntu-24.04 - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 # needed for Nerdbank.GitVersioning - - - name: Setup .NET - uses: actions/setup-dotnet@v4 - with: - dotnet-version: 8.0.x - - - name: Build Unit Tests .NET - run: dotnet build -f net8.0 test/Renci.SshNet.Tests/ - - - name: Build IntegrationTests .NET - run: dotnet build -f net8.0 test/Renci.SshNet.IntegrationTests/ - - - name: Build IntegrationTests .NET Framework - run: dotnet build -f net48 test/Renci.SshNet.IntegrationTests/ - - - name: Run Unit Tests .NET - run: | - dotnet test \ - -f net8.0 \ - --no-build \ - --logger "console;verbosity=normal" \ - --logger GitHubActions \ - -p:CollectCoverage=true \ - -p:CoverletOutputFormat=cobertura \ - -p:CoverletOutput=../../coverlet/linux_unit_test_net_8_coverage.xml \ - test/Renci.SshNet.Tests/ - - - name: Run Integration Tests .NET - run: | - dotnet test \ - -f net8.0 \ - --no-build \ - --logger "console;verbosity=normal" \ - --logger GitHubActions \ - -p:CollectCoverage=true \ - -p:CoverletOutputFormat=cobertura \ - -p:CoverletOutput=../../coverlet/linux_integration_test_net_8_coverage.xml \ - test/Renci.SshNet.IntegrationTests/ - - # Also run a subset of the integration tests targeting netfx using mono. This is a temporary measure to get - # some coverage until a proper solution for running the .NET Framework integration tests in CI is found. - # Running all the tests causes problems which are not worth solving in this rare configuration. - # See https://github.com/sshnet/SSH.NET/pull/1462 and related links - - name: Run Integration Tests Mono - run: | - sudo apt-get install ca-certificates gnupg - sudo gpg --homedir /tmp --no-default-keyring --keyring /usr/share/keyrings/mono-official-archive-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF - echo "deb [signed-by=/usr/share/keyrings/mono-official-archive-keyring.gpg] https://download.mono-project.com/repo/ubuntu stable-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list - sudo apt-get update - sudo apt-get install mono-devel - dotnet test \ - -f net48 \ - --no-build \ - --logger "console;verbosity=normal" \ - --logger GitHubActions \ - -p:CollectCoverage=true \ - -p:CoverletOutputFormat=cobertura \ - -p:CoverletOutput=../../coverlet/linux_integration_test_net_48_coverage.xml \ - --filter "Name~Ecdh|Name~ECDsa|Name~Zlib|Name~Gcm" \ - test/Renci.SshNet.IntegrationTests/ - - - name: Archive Coverlet Results - uses: actions/upload-artifact@v4 - with: - name: Coverlet Results Linux - path: coverlet - Windows: runs-on: windows-2022 steps: @@ -93,12 +19,6 @@ jobs: with: dotnet-version: 9.0.x - - name: Build Solution - run: dotnet build Renci.SshNet.sln - - - name: Publish AOT Compatibility Test App - run: dotnet publish -r win-x64 /warnaserror test/Renci.SshNet.AotCompatibilityTestApp/ - - name: Create NuGet Package run: dotnet pack @@ -108,32 +28,24 @@ jobs: name: NuGet Package path: src/Renci.SshNet/bin/Release/*.*nupkg - - name: Run Unit Tests .NET - run: | - dotnet test ` - -f net8.0 ` - --no-build ` - --logger "console;verbosity=normal" ` - --logger GitHubActions ` - -p:CollectCoverage=true ` - -p:CoverletOutputFormat=cobertura ` - -p:CoverletOutput=../../coverlet/windows_unit_test_net_8_coverage.xml ` - test/Renci.SshNet.Tests/ - - - name: Run Unit Tests .NET Framework - run: | - dotnet test ` - -f net462 ` - --no-build ` - --logger "console;verbosity=normal" ` - --logger GitHubActions ` - -p:CollectCoverage=true ` - -p:CoverletOutputFormat=cobertura ` - -p:CoverletOutput=../../coverlet/windows_unit_test_net_4_6_2_coverage.xml ` - test/Renci.SshNet.Tests/ - - - name: Archive Coverlet Results - uses: actions/upload-artifact@v4 - with: - name: Coverlet Results Windows - path: coverlet + Publish: + runs-on: ubuntu-24.04 + needs: + - Windows + steps: + - name: Download NuGet Package + uses: actions/download-artifact@v4 + with: + name: NuGet Package + + - name: Publish to GitHub NuGet Registry + run: | + dotnet nuget add source \ + --username mus65 \ + --password ${{ secrets.GITHUB_TOKEN }} \ + --store-password-in-clear-text \ + --name github \ + "https://nuget.pkg.github.com/mus65/index.json" + dotnet nuget push "*.nupkg" \ + --source github \ + --api-key ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file