name: Build and Test jobs: build: runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, windows-latest, macOS-latest] name: Dotnet build steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Setup dotnet uses: actions/setup-dotnet@v3 with: dotnet-version: | 6.0.x 7.0.x 8.0.x # - name: Check Format # # don't check formatting on Windows b/c of CRLF issues. # if: matrix.os == 'ubuntu-latest' # run: dotnet format --severity error --verify-no-changes --exclude ./src/KubernetesClient/generated/ - name: Build run: dotnet build --configuration Release -v detailed - name: Test run: dotnet test --configuration Release --collect:"Code Coverage;Format=Cobertura" --logger trx --results-directory TestResults --settings CodeCoverage.runsettings --no-build - name: Upload coverage to Codecov uses: codecov/codecov-action@v3 with: directory: ./TestResults files: '*.cobertura.xml' - name: Upload test results uses: actions/upload-artifact@v3 with: name: test-results path: ./TestResults if: ${{ always() }} # Always run this step even on failure # Test code gen for visual studio compatibility >> https://github.com/kubernetes-client/csharp/pull/1008 codgen: runs-on: windows-latest name: MSBuild build steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Add msbuild to PATH uses: microsoft/setup-msbuild@v1.3 - name: Setup dotnet SDK 7 uses: actions/setup-dotnet@v3 with: dotnet-version: '7.0.x' - name: Restore nugets (msbuild) run: msbuild .\src\KubernetesClient\ -t:restore -p:RestorePackagesConfig=true - name: Build (msbuild) run: msbuild .\src\KubernetesClient\ e2e: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Setup dotnet uses: actions/setup-dotnet@v3 with: dotnet-version: | 6.0.x 7.0.x 8.0.x - name: Minikube run: minikube start - name: Test run: | true > skip.log env K8S_E2E_MINIKUBE=1 dotnet test tests/E2E.Tests --logger "SkipTestLogger;file=$PWD/skip.log" if [ -s skip.log ]; then cat skip.log echo "CASES MUST NOT BE SKIPPED" exit 1 fi on: pull_request: types: [assigned, opened, synchronize, reopened]