name: Run unit tests

on: push

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

permissions:
  contents: read

jobs:
  test:
    runs-on: ubuntu-24.04
    timeout-minutes: 20
    steps:
    - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1

    - name: Setup Tools
      uses: ./.github/actions/setup-tools

    - name: Setup NPM Packages
      uses: ./.github/actions/setup-npm

    - name: Run community nodes build & test
      run: |
        pnpm build
        pnpm lint
        pnpm test
      working-directory: ./community-nodes
      shell: bash

    - name: Run sdg-mock-app sample app build & lint
      run: |
        pnpm lint
        pnpm build
      working-directory: ./docker-compose/sdg-mock-app
      shell: bash

    - name: Run external-hooks lint, build & test
      run: |
        pnpm lint
        pnpm bundle
        pnpm test
      working-directory: ./external-hooks
      shell: bash

    - name: Run external-ui lint, test & build
      run: |
        pnpm lint
        pnpm test
        pnpm build
      working-directory: ./external-ui
      shell: bash
