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: '3.1.301' # SDK Version to use.

    - name: Build
      shell: bash
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      run: |
        cd docs
        dotnet run --configuration Release

  ###################################################
  # 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
        uses: actions/setup-dotnet@v1
        with:
          dotnet-version: 3.1.301

      - name: Integration Tests
        shell: bash
        run: |
          dotnet tool restore
          dotnet example info
          dotnet example tables
          dotnet example grids
          dotnet example panels
          dotnet example colors
          dotnet example emojis
          dotnet example exceptions
          dotnet example calendars

      - name: Build
        shell: bash
        run: |
          dotnet tool restore
          dotnet cake