name: npm Tests
on:
  push:
    branches:
      - '**'
    tags-ignore:
      - '**'
  # Triggers the workflow on labeled PRs only.
  pull_request_target:
    types: [labeled]
# Ensures that only the latest commit is running for each PR at a time.
concurrency:
  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}-${{ github.ref }}
  cancel-in-progress: true
jobs:
  npm-Tests:
    if: contains(github.event.pull_request.labels.*.name, 'safe to test') || github.event_name == 'push'
    name: npm tests (${{ matrix.os }})
    strategy:
      fail-fast: false
      matrix:
        os: [ ubuntu, windows, macos ]
    runs-on: ${{ matrix.os }}-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
        with:
          ref: ${{ github.event.pull_request.head.sha }}

      - name: Install npm
        uses: actions/setup-node@v4
        with:
          node-version: "16"

      - name: Setup Go with cache
        uses: jfrog/.github/actions/install-go-with-cache@main

      - name: Install local Artifactory
        uses: jfrog/.github/actions/install-local-artifactory@main
        with:
          RTLIC: ${{ secrets.RTLIC }}

      - name: Run npm tests
        run: go test -v github.com/jfrog/jfrog-cli --timeout 0 --test.npm