Does anyone have a Github action that will run Credo (or any command) against only the changed files for the branch/pull request? If so, I would greatly appreciate it Thank you!
Yes is would be something like this: mix credo diff --from-git-merge-base main
where main is the branch you want to check for changes against.
This requires a version of credo >= 1.6
. Here are some docs from the changelog were it was introduced.
TIL - Thank you!!
I’m circling back to this and cannot get this to work within GH Actions. Using master
/ origin/master
/ ${{ github.head_ref }}
all result with the error ** (diff) given value is not a Git ref:
.
It has to do with how the code is checked out within a GH Action, I haven’t had enough time to dig into it, any help will be appreciated!
Can you provide us with your GH Action yaml?
on: push
jobs:
formatting:
runs-on: ubuntu-latest
name: Format check
steps:
- uses: actions/checkout@v2
- uses: erlef/setup-beam@v1
with:
otp-version: 23.3.4.4
elixir-version: 1.12.1
- run: mix deps.get
- run: mix format --check-formatted
credo:
runs-on: ubuntu-latest
name: Credo
steps:
- uses: actions/checkout@v2
- uses: erlef/setup-beam@v1
with:
otp-version: 23.3.4.4
elixir-version: 1.12.1
- run: mix deps.get
- run: mix credo diff --from-git-merge-base origin/master
compilation:
runs-on: ubuntu-latest
name: Compilation with warnings
steps:
- uses: actions/checkout@v2
- uses: erlef/setup-beam@v1
with:
otp-version: 23.3.4.4
elixir-version: 1.12.1
- run: mix deps.get
- run: mix compile --warnings-as-errors
I plan on adding build and dep caching once I have it working, thanks!
I had some help from Twitter, and I needed to adjust the checkout action. It works now
credo:
runs-on: ubuntu-latest
name: Credo
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: erlef/setup-beam@v1
with:
otp-version: 23.3.4.4
elixir-version: 1.12.1
- run: mix deps.get
- run: mix credo diff --from-git-merge-base origin/master