name: Continuous Integration on: pull_request env: DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true DOTNET_CLI_TELEMETRY_OPTOUT: true jobs: ################################################### # DOCS ################################################### docs: name: Documentation runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@master - name: Setup dotnet uses: actions/setup-dotnet@v1 with: dotnet-version: 6.0.x include-prerelease: true - name: Setup Node.js uses: actions/setup-node@v2 with: node-version: '14' - name: Cache dependencies uses: actions/cache@v2 with: path: ~/.npm key: npm-${{ hashFiles('package-lock.json') }} restore-keys: npm- - name: Build shell: bash env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | cd docs dotnet run --configuration Release - name: Archive doc generation uses: actions/upload-artifact@v2 with: name: documentation-output path: docs/output/ retention-days: 5 ################################################### # BUILD ################################################### build: name: Build if: "!contains(github.event.head_commit.message, 'skip-ci')" strategy: matrix: kind: ['linux', 'windows', 'macOS'] include: - kind: linux os: ubuntu-latest - kind: windows os: windows-latest - kind: macOS os: macos-latest runs-on: ${{ matrix.os }} steps: - name: Checkout uses: actions/checkout@v2 with: fetch-depth: 0 - name: Setup dotnet 3.1.402 uses: actions/setup-dotnet@v1 with: dotnet-version: 3.1.402 - name: Setup dotnet 5.0.301 uses: actions/setup-dotnet@v1 with: dotnet-version: 5.0.301 - name: Integration Tests shell: bash run: | dotnet tool restore dotnet example --all - name: Build shell: bash run: | dotnet tool restore dotnet cake - name: Upload Verify Test Results if: failure() uses: actions/upload-artifact@v2 with: name: verify-test-results path: | **/*.received.*