﻿#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#

name: CI - Unit
on:
  pull_request:
    branches:
      - master

jobs:

  unit-tests:
    name:
    runs-on: ubuntu-latest
    timeout-minutes: 120

    steps:
      - name: checkout
        uses: actions/checkout@v2
        with:
          fetch-depth: 0
          ref: ${{ github.event.pull_request.head.sha }}

      - name: Setup dotnet 2
        uses: actions/setup-dotnet@v1
        with:
          dotnet-version: '2.2.x'

      - name: Setup dotnet 3
        uses: actions/setup-dotnet@v1
        with:
          dotnet-version: '3.1.x'

      - name: run unit tests
        run: dotnet test ./tests/DotPulsar.Tests/DotPulsar.Tests.csproj --logger "trx;verbosity=detailed"

      - name: package artifacts
        if: failure()
        run: |
          rm -rf artifacts
          mkdir artifacts
          find . -type d -name "TestResults" -exec cp --parents -R {} artifacts/ \;
          zip -r artifacts.zip artifacts

      - name: upload artifacts
        uses: actions/upload-artifact@master
        if: failure()
        with:
          name: artifacts
          path: artifacts.zip
