name: Tests on: push: branches: [ main ] pull_request: branches: [ main ] env: VERSION: 3.6.0.0 jobs: build: name: Test ${{ matrix.project }} (${{ matrix.os }}) runs-on: ${{ matrix.os }} env: NEXUS_API_KEY: ${{ secrets.NEXUS_API_KEY }} NEXUS_LOGIN: ${{ secrets.NEXUS_LOGIN }} VECTOR_PLEXUS: ${{ secrets.VECTOR_PLEXUS }} LOVERS_LAB: ${{ secrets.LOVERS_LAB }} strategy: matrix: os: [ubuntu-latest, windows-latest, macos-latest] steps: - uses: actions/checkout@v2 - name: Set Permissions if: runner.os != 'Windows' run: chmod -R +x Wabbajack.FileExtractor/Extractors - name: Setup .NET Core SDK 8.0.x uses: actions/setup-dotnet@v1 with: dotnet-version: '8.0.x' include-prerelease: true - name: Test run: dotnet test /p:EnableWindowsTargeting=true --filter "Category!=FlakeyNetwork" #- name: Upload Test Folder on Failure # if: ${{ failure() }} # uses: actions/upload-artifact@v2 # with: # name: Failed Files # path: ./ publish: name: Publish Projects runs-on: ubuntu-latest if: ${{ github.event_name == 'push' }} strategy: matrix: project: - Wabbajack.Common - Wabbajack.Compiler - Wabbajack.Compression.BSA - Wabbajack.Compression.Zip - Wabbajack.Configuration - Wabbajack.Downloaders.Bethesda - Wabbajack.Downloaders.Dispatcher - Wabbajack.Downloaders.GameFile - Wabbajack.Downloaders.GoogleDrive - Wabbajack.Downloaders.Http - Wabbajack.Downloaders.Interfaces - Wabbajack.Downloaders.IPS4OAuth2Downloader - Wabbajack.Downloaders.Manual - Wabbajack.Downloaders.MediaFire - Wabbajack.Downloaders.Mega - Wabbajack.Downloaders.ModDB - Wabbajack.Downloaders.Nexus - Wabbajack.Downloaders.VerificationCache - Wabbajack.Downloaders.WabbajackCDN - Wabbajack.DTOs - Wabbajack.FileExtractor - Wabbajack.Hashing.PHash - Wabbajack.Hashing.xxHash64 - Wabbajack.Installer - Wabbajack.IO.Async - Wabbajack.Networking.BethesdaNet - Wabbajack.Networking.Discord - Wabbajack.Networking.GitHub - Wabbajack.Networking.Http - Wabbajack.Networking.Http.Interfaces - Wabbajack.Networking.NexusApi - Wabbajack.Networking.Steam - Wabbajack.Networking.WabbajackClientApi - Wabbajack.Paths - Wabbajack.Paths.IO - Wabbajack.RateLimiter - Wabbajack.Services.OSIntegrated - Wabbajack.VFS - Wabbajack.VFS.Interfaces needs: build steps: - uses: actions/checkout@v2 - name: Setup .NET Core SDK 8.0.x uses: actions/setup-dotnet@v1 with: dotnet-version: '8.0.x' include-prerelease: true - name: Restore run: dotnet restore ${{ matrix.project }}/${{ matrix.project }}.csproj - name: Build run: dotnet build ${{ matrix.project }}/${{ matrix.project }}.csproj --no-restore --configuration Release - name: Pack run: dotnet pack ${{ matrix.project }}/${{ matrix.project }}.csproj --no-build --configuration Release --include-symbols -p:SymbolPackageFormat=snupkg -o . - name: Publish run: dotnet nuget push *.nupkg --api-key ${{secrets.NUGET_KEY}} --source "https://api.nuget.org/v3/index.json" --skip-duplicate