I have just released yet another maintenance release (0.34.0) of the GitHub Action for doing spelling checking of your documentation etc.
The release was prompted by several updates.
- The Docker base images was updated to Python 3.11.5
- And more importantly the core component PySpelling was updated to version 2.9
The change log can be found here:
In addition I have updated the documentation, since I found out that one of the features was not working as expected. It was not something I could fix via code, since it is dependent on how the GitHub Action is used, so a documentation update was the way to go.
By default when a GitHub Action fails, the run is marked as failed together with the failing step.
If you however have a step where you collect log information or similar in order to publish an artifact or similar, this step will not be run, when the previous step fails.
If you set the step to continue-on-error
, the step will be marked as failed but the overall status of the run will not reflect this.
Example configuration:
name: Spellcheck Action
on: push
jobs:
build:
name: Spellcheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Spellcheck
id: spellcheck
uses: rojopolis/spellcheck-github-actions@0.34.0
continue-on-error: true
with:
output_file: spellcheck-output.txt
- uses: actions/upload-artifact@v3
with:
name: Spellcheck Output
path: spellcheck-output.txt
However, what you can do is to set the artifact generating step to only stop on cancel
.
For this action, this could look as follows:
name: Spellcheck Action
on: push
jobs:
build:
name: Spellcheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Spellcheck
id: spellcheck
uses: rojopolis/spellcheck-github-actions@0.34.0
with:
output_file: spellcheck-output.txt
- uses: actions/upload-artifact@v3
if: '!cancelled()'
with:
name: Spellcheck Output
path: spellcheck-output.txt
REF: https://raw.githubusercontent.com/jonasbn/til/master/.github/workflows/spellcheck.yml
When the spelling check step fails, we want to collect the log, so we can correct the spelling mistakes collected in the log.
You can of course, inspect it via GitHub, but this might not be optimal if you have a log of files and/or spelling mistakes.
With the line: if: '!cancelled()'
we still respect if the run is cancelled, but we generate the artifact both upon success and error.
It has taken me quite some time and a lot of runs to get this to work, luckily I was not the only one with the problem, so a solution was available.