name: Main Pipeline on: push: branches: [ main ] pull_request: branches: [ main ] env: VERSION: 3.0.0.0-beta2 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 6.0.x uses: actions/setup-dotnet@v1 with: dotnet-version: '6.0.x' include-prerelease: true - name: Build if: runner.os != 'Windows' shell: bash run: find Wabbajack.* -maxdepth 0 -type d ! -name "Wabbajack.App.Wpf" -exec dotnet build --configuration Release {} \; - name: Build if: runner.os == 'Windows' shell: bash run: find Wabbajack.* -maxdepth 0 -type d -exec dotnet build --configuration Release {} \; - name: Test shell: bash run: find Wabbajack.*.Test -maxdepth 0 -type d ! -name "Wabbajack.App.Wpf" -exec dotnet test --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.Downloaders.Interfaces - Wabbajack.Downloaders.Dispatcher - Wabbajack.Compression.BSA - Wabbajack.Downloaders.IPS4OAuth2Downloader - Wabbajack.Downloaders.MediaFire - Wabbajack.Downloaders.Mega - Wabbajack.Downloaders.ModDB - Wabbajack.Downloaders.GoogleDrive - Wabbajack.Downloaders.Http - Wabbajack.Downloaders.Nexus - Wabbajack.Downloaders.WabbajackCDN - Wabbajack.DTOs - Wabbajack.FileExtractor - Wabbajack.Hashing.PHash - Wabbajack.Hashing.xxHash64 - Wabbajack.Installer - 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.VFS - Wabbajack.Services.OSIntegrated needs: build steps: - uses: actions/checkout@v2 - name: Setup .NET Core SDK 6.0.x uses: actions/setup-dotnet@v1 with: dotnet-version: '6.0.x' include-prerelease: true - name: Publish ${{ matrix.project}} NuGet uses: brandedoutcast/publish-nuget@v2.5.5 with: PROJECT_FILE_PATH: ${{ matrix.project }}/${{ matrix.project }}.csproj VERSION_STATIC: ${{ env.VERSION }} NUGET_KEY: ${{secrets.NUGET_KEY}}