diff --git a/.github/workflows/orphaned-assets-check.yml b/.github/workflows/orphaned-files-check.yml similarity index 76% rename from .github/workflows/orphaned-assets-check.yml rename to .github/workflows/orphaned-files-check.yml index f8bc40722f..117e574453 100644 --- a/.github/workflows/orphaned-assets-check.yml +++ b/.github/workflows/orphaned-files-check.yml @@ -1,6 +1,6 @@ -name: 'Orphaned assets check' +name: 'Orphaned files check' -# **What it does**: Checks that there are no files in ./assets/ that aren't mentioned in any source file. +# **What it does**: Checks that there are no files in ./assets/ and ./data/reusables that aren't mentioned in any source file. # **Why we have it**: To avoid orphans into the repo. # **Who does it impact**: Docs content. @@ -14,6 +14,7 @@ on: # In case any of the dependencies affect the script - 'package*.json' - src/assets/scripts/find-orphaned-assets.js + - src/content-render/scripts/reusables-cli/find/unused.ts - src/workflows/walk-files.js - src/languages/lib/languages.js - .github/actions/clone-translations/action.yml @@ -44,7 +45,7 @@ jobs: - uses: ./.github/actions/node-npm-setup - - name: Check for orphaned assets + - name: Check for orphaned assets and reusables env: # Needed for gh GITHUB_TOKEN: ${{ secrets.DOCS_BOT_PAT_READPUBLICKEY }} @@ -54,10 +55,16 @@ jobs: # The `-s` is to make npm run silent and not print verbose # information about the npm script alias. - filesToRemove=`npm run -s find-orphaned-assets` - [ -z "$filesToRemove" ] && exit 0 + assetFilesToRemove=$(npm run -s find-orphaned-assets) + reusableFilesToRemove=$(npm run -s reusables -- find unused | grep '^data/reusables') + [ -z "$assetFilesToRemove" ] && [ -z "$reusableFilesToRemove" ] && exit 0 - echo $filesToRemove | xargs git rm + if [ -n "$assetFilesToRemove" ]; then + echo $assetFilesToRemove | xargs git rm + fi + if [ -n "$reusableFilesToRemove" ]; then + echo $reusableFilesToRemove | xargs git rm + fi git status @@ -76,25 +83,26 @@ jobs: git config --global user.email "77750099+docs-bot@users.noreply.github.com" date=$(date '+%Y-%m-%d-%H-%M') - branchname=orphaned-assets-$date-$GITHUB_RUN_ID + branchname=orphaned-files-$date-$GITHUB_RUN_ID git checkout -b $branchname - git commit -m "Delete orphaned assets $date" + git commit -m "Delete orphaned files $date" git push origin $branchname body=$(cat <<-EOM Found with the npm run find-orphaned-assets script. - The orphaned assets workflow file .github/workflows/orphaned-assets-check.yml + The orphaned files workflow file .github/workflows/orphaned-files-check.yml runs every Monday at 16:20 UTC / 8:20 PST. The first responder should just spot-check some of the unused assets to make sure they aren't referenced anywhere and then approve and merge the pull request. - For more information, see [Doc: Orphaned Assets](https://github.com/github/docs-engineering/blob/main/docs/orphaned-assets.md). + For more information, see [Doc: Orphaned Assets](https://github.com/github/docs-engineering/blob/main/docs/orphaned-assets.md) + and [Doc: Reusables CLI](https://github.com/github/docs-internal/tree/main/src/content-render/scripts/reusables-cli). EOM ) gh pr create \ - --title "Delete orphaned assets ($date)" \ + --title "Delete orphaned files ($date)" \ --body "$body" \ --repo github/docs-internal \ --label docs-content-fr