name: unit
on:
  pull_request:
  push:
    branches:
      - 'release-*'
      - 'master'
      - 'main'
    tags:
      - 'v*'
# To cancel running workflow when new commits pushed in a pull request
concurrency:
  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
  cancel-in-progress: true
jobs:
  changed-files:
     uses: ./.github/workflows/changed-files.yaml
  unit-tests:
    name: Unit tests
    runs-on: ubuntu-latest
    needs: changed-files
    if: ${{ needs.changed-files.outputs.non-markdown-files }}
    steps:
    - uses: actions/checkout@v6
    - name: Import environment variables from file
      run: cat ".github/env" >> "$GITHUB_ENV"
    - uses: actions/setup-go@v6
      with:
        go-version: '${{ env.golang-version }}'
        check-latest: true
    - run: make test-unit
  extended-tests:
    runs-on: ubuntu-latest
    name: Extended tests
    needs: changed-files
    if: ${{ needs.changed-files.outputs.non-markdown-files }}
    steps:
    - uses: actions/checkout@v6
    - name: Import environment variables from file
      run: cat ".github/env" >> "$GITHUB_ENV"
    - uses: actions/setup-go@v6
      with:
        go-version: ${{ env.golang-version }}
        check-latest: true
    - run: make test-long
