name: CI Tests on: push: branches: [ main ] pull_request: branches: [ main ] jobs: ci: name: dotnet strategy: matrix: os: [ windows-latest, macos-latest, ubuntu-latest ] runs-on: ${{ matrix.os }} env: DOTNET_NOLOGO: true DOTNET_GENERATE_ASPNET_CERTIFICATE: false steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install dotnet uses: actions/setup-dotnet@v4 with: cache: true cache-dependency-path: '**/*.csproj' global-json-file: ./global.json - name: Install PSResources shell: pwsh run: ./tools/installPSResources.ps1 - name: Download PowerShell install script uses: actions/checkout@v4 with: repository: PowerShell/PowerShell path: pwsh sparse-checkout: tools/install-powershell.ps1 sparse-checkout-cone-mode: false - name: Install preview shell: pwsh run: ./pwsh/tools/install-powershell.ps1 -Preview -Destination ./preview - name: If debugging, start upterm for interactive pipeline troubleshooting if: ${{ runner.debug == 1 }} uses: lhotari/action-upterm@v1 with: wait-timeout-minutes: 1 - name: Build and test shell: pwsh run: Invoke-Build -Configuration Release TestFull - name: Upload build artifacts if: always() uses: actions/upload-artifact@v4 with: name: PowerShellEditorServices-module-${{ matrix.os }} path: module - name: Upload test results uses: actions/upload-artifact@v4 if: always() with: name: PowerShellEditorServices-test-results-${{ matrix.os }} path: '**/*.trx'