# This workflow will check if dependencies have changed (adding new dependencies or removing existing ones)

name: Dependency Check

on:
  push:
    branches:
      - master
      - "rel/*"
      - "rc/*"
    paths-ignore:
      - "docs/**"
      - "site/**"
  pull_request:
    branches:
      - master
      - "rel/*"
      - "rc/*"
      - "force_ci/**"
    paths-ignore:
      - "docs/**"
      - "site/**"
  # allow manually run the action:
  workflow_dispatch:

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

env:
  MAVEN_OPTS: -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.http.retryHandler.class=standard -Dmaven.wagon.http.retryHandler.count=3
  MAVEN_ARGS: --batch-mode --no-transfer-progress
  DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}

jobs:
  dependency-check:
    strategy:
      fail-fast: false
      max-parallel: 15
      matrix:
        java: [17]
        os: [ubuntu-latest]
    runs-on: ${{ matrix.os }}

    steps:
      - uses: actions/checkout@v5
      - name: Set up JDK ${{ matrix.java }}
        uses: actions/setup-java@v5
        with:
          distribution: corretto
          java-version: ${{ matrix.java }}
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      - name: Cache Maven packages
        uses: actions/cache@v5
        with:
          path: ~/.m2
          key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
          restore-keys: ${{ runner.os }}-m2-
      - name: Do the dependency check
        shell: bash
        run: mvn verify -Dmaven.test.skip=true -Dmdep.analyze.skip=true -P enable-sbom-check
