# this is slightly different from what's in the repository as I need some bits to make act more or less work...
name: Check Spelling
# Comment management is handled through a secondary job, for details see:
# https://github.com/check-spelling/check-spelling/wiki/Feature%3A-Restricted-Permissions
#
# `jobs.comment-push` runs when a push is made to a repository and the `jobs.spelling` job needs to make a comment
# (in odd cases, it might actually run just to collapse a commment, but that's fairly rare)
# it needs `contents: write` in order to add a comment.
#
# `jobs.comment-pr` runs when a pull_request is made to a repository and the `jobs.spelling` job needs to make a comment
# or collapse a comment (in the case where it had previously made a comment and now no longer needs to show a comment)
# it needs `pull-requests: write` in order to manipulate those comments.
# Updating pull request branches is managed via comment handling.
# For details, see: https://github.com/check-spelling/check-spelling/wiki/Feature:-Update-expect-list
#
# These elements work together to make it happen:
#
# `on.issue_comment`
# This event listens to comments by users asking to update the metadata.
#
# `jobs.update`
# This job runs in response to an issue_comment and will push a new commit
# to update the spelling metadata.
#
# `with.experimental_apply_changes_via_bot`
# Tells the action to support and generate messages that enable it
# to make a commit to update the spelling metadata.
#
# `with.ssh_key`
# In order to trigger workflows when the commit is made, you can provide a
# secret (typically, a write-enabled github deploy key).
#
# For background, see: https://github.com/check-spelling/check-spelling/wiki/Feature:-Update-with-deploy-key
on:
push:
branches:
- "**"
tags-ignore:
- "**"
pull_request_target:
branches:
- "**"
tags-ignore:
- "**"
types:
- 'opened'
- 'reopened'
- 'synchronize'
issue_comment:
types:
- 'created'
jobs:
spelling:
name: Check Spelling
permissions:
contents: read
pull-requests: read
actions: read
security-events: write
outputs:
followup: ${{ steps.spelling.outputs.followup }}
internal_state_directory: ${{ steps.spelling.outputs.internal_state_directory }}
docker_container: ${{ steps.spelling.outputs.docker_container }}
runs-on: ubuntu-latest
if: "contains(github.event_name, 'pull_request') || github.event_name == 'push'"
concurrency:
group: spelling-${{ github.event.pull_request.number || github.ref }}
# note: If you use only_check_changed_files, you do not want cancel-in-progress
cancel-in-progress: true
steps:
- name: check-spelling
id: spelling
uses: check-spelling/check-spelling@prerelease
with:
suppress_push_for_open_pull_request: 1
checkout: true
spell_check_this: check-spelling/spell-check-this@prerelease
post_comment: 0
use_magic_file: 1
experimental_apply_changes_via_bot: 1
use_sarif: 1
extra_dictionary_limit: 10
extra_dictionaries:
cspell:software-terms/src/software-terms.txt
cspell:node/node.txt
cspell:html/html.txt
cspell:npm/npm.txt
cspell:elixir/elixir.txt
cspell:fullstack/fullstack.txt
cspell:aws/aws.txt
cspell:cpp/src/stdlib-cerrno.txt
cspell:filetypes/filetypes.txt
cspell:python/src/common/extra.txt
cspell:python/src/python/python.txt
cspell:css/css.txt
cspell:lorem-ipsum/dictionary.txt
cspell:cpp/src/ecosystem.txt
cspell:django/django.txt
check_extra_dictionaries: ''
comment-push:
name: Report (Push)
# If your workflow isn't running on push, you can remove this job
runs-on: ubuntu-latest
needs: spelling
permissions:
contents: write
if: (success() || failure()) && needs.spelling.outputs.followup && github.event_name == 'push'
steps:
- name: comment
uses: check-spelling/check-spelling@prerelease
with:
checkout: true
spell_check_this: check-spelling/spell-check-this@prerelease
task: ${{ needs.spelling.outputs.followup }}
internal_state_directory: ${{ needs.spelling.outputs.internal_state_directory }}
caller_container: ${{ needs.spelling.outputs.docker_container }}
debug: 1
comment-pr:
name: Report (PR)
# If you workflow isn't running on pull_request*, you can remove this job
runs-on: ubuntu-latest
needs: spelling
permissions:
pull-requests: write
if: (success() || failure()) && needs.spelling.outputs.followup && contains(github.event_name, 'pull_request')
steps:
- name: comment
uses: check-spelling/check-spelling@prerelease
with:
checkout: true
spell_check_this: check-spelling/spell-check-this@prerelease
task: ${{ needs.spelling.outputs.followup }}
experimental_apply_changes_via_bot: 1
update:
name: Update PR
permissions:
contents: write
pull-requests: write
actions: read
runs-on: ubuntu-latest
if: ${{
github.event_name == 'issue_comment' &&
github.event.issue.pull_request &&
contains(github.event.comment.body, '@check-spelling-bot apply')
}}
concurrency:
group: spelling-update-${{ github.event.issue.number }}
cancel-in-progress: false
steps:
- name: apply spelling updates
uses: check-spelling/check-spelling@prerelease
with:
experimental_apply_changes_via_bot: 1
checkout: true
ssh_key: "${{ secrets.CHECK_SPELLING }}"
I don't think #1458 is particularly relevant, although it may be adjacent.
I've included GITHUB_ACTION_REF and GITHUB_ACTION_REPOSITORY which should also be set, but aren't. They're technically out of scope, and I'm in the middle of adding additional code to work around their empty values.
Bug report info
Command used with act
Describe issue
Per https://docs.github.com/en/actions/learn-github-actions/environment-variables#naming-conventions-for-environment-variables
GITHUB_JOB
should be the job id, not the job name.I have some code which tries to identify the workflow based on this variable, and at least, the documentation says that what I'm doing is correct: https://github.com/check-spelling/check-spelling/blob/2edd26d0adeaa4e72bfd30e4873855ecb6ba4390/unknown-words.sh#L353
(I'm going to add some code to tolerate this behavior as well as I'm trying to ship...)
Link to GitHub repository
https://github.com/check-spelling/pleroma/blob/spell-check-with-spelling/.github/workflows/spelling.yml
Workflow content
Relevant log output
Additional information
I don't think #1458 is particularly relevant, although it may be adjacent.
I've included
GITHUB_ACTION_REF
andGITHUB_ACTION_REPOSITORY
which should also be set, but aren't. They're technically out of scope, and I'm in the middle of adding additional code to work around their empty values.To make the run faster, you can add:
.github/actions/spelling/only.txt
: