name: Riemann NodeJS Client testing

on: [push]

jobs:
  test:

    strategy:
      matrix:
        node-version: [14.x, 15.x, 16.x, 18.x]
      fail-fast: false
    name: NodeJS ${{ matrix.node-version }}

    runs-on: ubuntu-latest

    services:
      riemann:
        image: riemannio/riemann:latest
        ports:
          - 5555:5555
          - 5555:5555/udp
          - 5556:5556
          - 2003:2003

    steps:
      - uses: actions/checkout@v3
      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v3
        with:
          node-version: ${{ matrix.node-version }}
      - name: Install deps
        run: npm install
      - name: Run linter
        run: npm run lint
      - name: Run tests
        run: npm run testci
      - name: Upload Test Results
        if: always()
        uses: actions/upload-artifact@v3
        with:
          name: Test Results (NodeJS ${{ matrix.node-version }})
          path: test-results.xml
  
  publish-test-results:
    name: "Publish Tests Results"
    needs: test
    runs-on: ubuntu-latest
    permissions:
      checks: write
      pull-requests: write
    if: always()

    steps:
      - name: Download Artifacts
        uses: actions/download-artifact@v2
        with:
          path: artifacts

      - name: Publish Test Results
        uses: EnricoMi/publish-unit-test-result-action@v1
        with:
          files: "artifacts/**/test-results.xml"
