name: "Dependency Analysis" # Run only when build.gradle file is changed on: workflow_dispatch: # Allow manual triggering # push: # paths: # - '**/build.gradle' # - '**/build.gradle.kts' # - '**/gradle.properties' # - '**/gradle.properties.kts' # - '**/gradle-wrapper.properties' # - '**/gradle-wrapper.properties.kts' # - '**/settings.gradle' # - '**/settings.gradle.kts' # - '**/settings.gradle.kts' jobs: validation: # Skip if head commit contains 'skip da' if: "!contains(github.event.head_commit.message, 'skip da')" name: "Validation" runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Gradle Wrapper validation uses: gradle/wrapper-validation-action@v1 dependencyAnalysis: # Skip if tags if: startsWith(github.ref , 'refs/tags/') != true name: "Dependency Analysis" runs-on: ubuntu-latest needs: validation steps: - uses: actions/checkout@v4 - name: Set up Java uses: actions/setup-java@v3 with: java-version: '17' # Adjust the Java version as needed distribution: 'temurin' cache: 'gradle' - name: Make gradlew executable run: chmod +x ./gradlew - name: Update Gradle Wrapper to use Java 17 run: echo "org.gradle.java.home=/usr/lib/jvm/adoptopenjdk-17-hotspot-amd64" >> gradle/wrapper/gradle-wrapper.properties - name: Cache Gradle uses: actions/cache@v3 with: path: ~/.gradle/caches key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} restore-keys: ${{ runner.os }}-gradle - name: Generates advice from Dependency-analysis Gradle task run: ./gradlew buildHealth - name: Upload advice uses: actions/upload-artifact@v3 with: name: dependency-advice path: ./build/reports/dependency-analysis/