So, I have a GitHub workflow that runs on push and checks for changes in a specific directory and runs a script if there are changes. However, with the current implementation (git diff HEAD^ HEAD
), it only checks the diff between the last 2 commits. It is entirely possible that more than 1 commit was pushed so I am looking for a way through which I can compare the last 2 pushed commits.
Would be awesome if anyone can help me with this!
CodePudding user response:
You can use the following:
on:
push:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
# checkout full tree
fetch-depth: 0
- run: |
git diff ${{github.event.before}} ${{github.sha}}
As per the docs on the github
context and the docs on the push
webhook event data {{github.event.before}}
is replaced by the commit SHA before the push. {{github.sha}}
or {{github.event.after}}
is replaced by the SHA of the latest commit that was pushed.