Skip to content

Workflow to check CLA/DCO by contributors #512

Workflow to check CLA/DCO by contributors

Workflow to check CLA/DCO by contributors #512

Workflow file for this run

# Copyright 2024 Zaphiro Technologies
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Copyright 2023 Zaphiro Technologies
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: Markdown Lint
concurrency:
group: ${{ github.ref_name }}-markdown
cancel-in-progress: true
on:
# Trigger the workflow on push or pull request,
# but only for the main branch
push:
branches:
- main
# Replace pull_request with pull_request_target if you
# plan to use this action with forks, see the Limitations section
pull_request:
branches:
- main
workflow_call:
inputs:
skip-spell-check:
required: false
default: true
type: boolean
config-links-path:
required: false
default: '.github/config/md-link-config.json'
type: string
config-lint-path:
default: '.github/config/.markdownlint.json'
required: false
type: string
md-lint-globs:
required: false
type: string
default: |
**/*.md
**/*.MD
#.github
#vendor
jobs:
changes:
runs-on: ubuntu-latest
outputs:
files-changed: ${{ steps.filter.outputs.markdown }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v2
id: filter
with:
filters: |
markdown:
- '*.{md,MD}'
- '**/*.{md,MD}'
- '.github/config/.markdownlint.json'
- '.github/config/.prettierignore'
- '.github/config/md-link-config.json'
- '.github/config/spellcheck.yml'
- '.github/config/wordlist.txt'
- '.github/workflows/*.yaml'
markdown:
needs: changes
if: ${{ needs.changes.outputs.files-changed == 'true' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
token: ${{ secrets.REPO_PAT }}
ref: ${{github.event.pull_request.head.ref}}
repository: ${{github.event.pull_request.head.repo.full_name}}
- name: Prettify MD files
uses: zaphiro-technologies/prettier_action@main
with:
prettier_options: --prose-wrap always --write **/*.{md,MD} --ignore-path .github/config/.prettierignore
dry: true
dry_no_fail: true
- name: Lint
uses: DavidAnson/markdownlint-cli2-action@v13
with:
fix: true
config: ${{ inputs.config-lint-path || '.github/config/.markdownlint.json' }}
globs: ${{ inputs.md-lint-globs || '**/*.md,**/*.MD,#__tests__/test.md' }}
separator: ${{ inputs.md-lint-globs && '' || ',' }}
- name: Commit markdown-lint changes
run: |
git config --global user.name 'Bot'
git config --global user.email '[email protected]'
git commit -am "Automated markdown-lint fixes" || echo "No changes to commit"
git push
rm -fr vendor
# Checks the status of hyperlinks in .md and .MD files in verbose mode (the action is case sensitive and .{MD,md})
- name: Check links (.md)
uses: gaurav-nelson/github-action-markdown-link-check@v1
with:
config-file: ${{ inputs.config-link-path || '.github/config/md-link-config.json' }}
use-verbose-mode: 'yes'
- name: Check links (.MD)
uses: gaurav-nelson/github-action-markdown-link-check@v1
with:
config-file: ${{ inputs.config-link-path || '.github/config/md-link-config.json' }}
use-verbose-mode: 'yes'
file-extension: '.MD'
markdown-spellchecker:
runs-on: ubuntu-latest
needs: changes
if: ${{ needs.changes.outputs.files-changed == 'true' && (!inputs.skip-spell-check || inputs.skip-spell-check == '') }}
steps:
- uses: actions/checkout@v3
with:
token: ${{ secrets.REPO_PAT }}
ref: ${{github.event.pull_request.head.ref}}
repository: ${{github.event.pull_request.head.repo.full_name}}
- name: Update wordlist.txt with users
shell: bash
run: |
export CREDITS=$(gh repo credits)
for CREDIT in $CREDITS;
do
CREDIT=$(printf '%s' "$CREDIT" | sed 's/[0-9]//g')
export TEST=$(grep -c $CREDIT .github/config/wordlist.txt)
if [ $TEST -eq 0 ]; then
echo "not found"
echo "$CREDIT" >> .github/config/wordlist.txt
else
echo "$CREDIT: found"
fi
done
git config --global user.name 'Bot'
git config --global user.email '[email protected]'
git commit -am "Automated wordlist update with user names" || echo "No changes to commit"
git push
env:
GH_TOKEN: ${{ github.token }}
- uses: rojopolis/spellcheck-github-actions@v0
name: Spellcheck
with:
config_path: .github/config/spellcheck.yml
output_file: spellcheck-output.txt
task_name: Markdown