Skip to content

content_check

content_check #1704

Workflow file for this run

# Checks content for rules. Focused on new astro site
name: content_check
on:
pull_request:
# run once a day
schedule:
- cron: '13 19 * * *'
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
check_content:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- uses: actions/checkout@v3
- name: Check for blog posts that have incorrect categories
run: |
find astro/src/content/blog/ -type f -name "*.md*" |grep -v swp | xargs grep '^categories:'|sed 's/.*categories: //'|sed 's/, /\n/g'|sort -u > out
RES=`diff out .github/known-blog-categories.txt`
exit $RES
shell: bash
- name: Grep for absolute URLs referencing FusionAuth.io
continue-on-error: true
# we ignore 'open your browser and navigate to https://fusionauth.io/docs' because it is part of command output
# we ignore 'homepage "https://fusionauth.io"' because it is part of the homebrew formula
# we ignore "<a href='https://fusionauth.io/docs/v1/tech/tutorials/'>Learn how this app works.</a>" because it is part of a react tutorial
# we use continue-on-error because grep -v exits with code 1 if it doesn't find anything, but that's what we want.
run: |
find astro/src/content/ -type f -name "*.md*" | xargs grep 'https://fusionauth.io' | grep -v 'homepage "https://fusion' | grep -v 'open your browser and navigate to https://fusionauth.io/docs' |grep -v "<a href='https://fusionauth.io/docs/'>Learn how this app works.</a>" > absolute.out
shell: bash
- name: Check for absolute URLs referencing FusionAuth.io from file. Keep this next to 'Grep for absolute URLs referencing FusionAuth.io'
run: |
exit `cat absolute.out | wc -l | sed 's/[ ]*//g'`
shell: bash
- name: Check for old asciidoc styling syntax
run: |
exit `find astro/src/content/docs/ -type f | xargs grep ']#'| wc -l |sed 's/[ ]*//g'`
shell: bash
- name: Check for old doc nav url references
run: |
exit `find astro/src/content/ -type f | xargs grep 'docs/v1/tech'| wc -l |sed 's/[ ]*//g'`
shell: bash
- name: Check for erroneous markdown references
run: |
exit `find astro/src/content/ -type f -name "*.md*" | xargs grep ']()'| wc -l |sed 's/[ ]*//g'`
shell: bash
- name: Make sure all docs have a full sentence in their description.
run: |
exit `find astro/src/content/docs/ -type f -print|grep -v '/_' |xargs grep '^description: '|grep -v '\.$'|wc -l |sed 's/[ ]*//g'`
shell: bash
- name: Make sure docs don't use old asciidoc icon references
run: |
exit `find astro/src/content/docs/ -type f -print|xargs grep -l 'icon:[a-z]'| wc -l |sed 's/[ ]*//g'`
shell: bash
- name: check for APIFields with no name
run: |
echo `grep -R \<APIField astro/src/content/docs | grep -v name`
exit `find astro/src/content/docs -type f -print|xargs grep -R \<APIField | grep -v name | wc -l | sed 's/[ ]*//g'`
shell: bash
#- name: Check for titles/headers that have incorrect casing
#run: |
#! find astro/src/content/ -type f -name "*.md*" |grep -v swp | xargs grep title: |grep -v subtitle|sed 's/.*title: //' | sed "s/'//g" | grep -E '\b[a-z]+\b'
#shell: bash