Dependency Tree Diff - Github Action
Simple Github Action wrapper for Jake Wharton's Dependency Tree Diff tool.
Usage
The action only exposes output containing the diff, so to effectively consume its output it is highly recommended to use other Github Actions to customize your experience.
Create Pull Request comment on dependency change
See it in action!
Create .github/workflows/dependency_diff.yml
name: Generate dependency diff
on:
pull_request:
jobs:
generate-diff:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: set up JDK
uses: actions/setup-java@v2
with:
distribution: 'temurin'
java-version: 17
- name: Cache
uses: gradle/gradle-build-action@v2
with:
arguments: dependencies
- id: dependency-diff
name: Generate dependency diff
uses: usefulness/dependency-tree-diff-action@v1
- uses: peter-evans/find-comment@v1
id: find_comment
with:
issue-number: ${{ github.event.pull_request.number }}
body-includes: Dependency diff
- uses: peter-evans/create-or-update-comment@v1
if: ${{ steps.dependency-diff.outputs.text-diff != null || steps.find_comment.outputs.comment-id != null }}
with:
body: |
Dependency diff (customize your message here):
```diff
${{ steps.dependency-diff.outputs.text-diff }}
```
edit-mode: replace
comment-id: ${{ steps.find_comment.outputs.comment-id }}
issue-number: ${{ github.event.pull_request.number }}
token: ${{ secrets.GITHUB_TOKEN }}
Customization
All inputs with their default values:
- id: dependency-diff
name: Generate dependency diff
uses: usefulness/dependency-tree-diff-action@master
with:
configuration: 'releaseRuntimeClasspath'
project: 'app'
build-root-directory: .
lib-version: '1.2.0'
configuration
- Selected Gradle configuration, passed to./gradlew dependencies --configuration xxx
. Should correspond to output artifact that is considered output of the project.project
- Gradle project which dependency tree diff should be generated for. Dependency diff for root projects can be configured usingproject: ''
. For Android projects use the one that hascom.android.application
plugin applied.build-root-directory
- Relative path to folder containing gradle wrapper. Example usage:build-root-directory: library
lib-version
- Overrides dependency-tree-diff dependency version
🙏 Praise 🙏 be 🙏 to 🙏 Wharton 🙏