Repo sync #4568
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Test changed content | |
# **What it does**: Runs the vitest tests for changed and deleted content files. | |
# **Why we have it**: Use GitHub Actions to run tests on changed content files. | |
# **Who does it impact**: Docs engineering, open-source engineering contributors. | |
on: | |
pull_request: | |
branches: | |
# This is important! If you make a PR against a megabranch, you | |
# might actually want to delete a file without setting up a | |
# redirect in its place. But if it's going into `main` we'll | |
# want to make sure that doesn't happen. | |
- main | |
paths: | |
- 'content/**' | |
- .github/workflows/test-changed-content.yml | |
permissions: | |
contents: read | |
jobs: | |
test-changed-content: | |
runs-on: ${{ fromJSON('["ubuntu-latest", "ubuntu-20.04-xl"]')[github.repository == 'github/docs-internal'] }} | |
if: ${{ github.repository == 'github/docs-internal' || github.repository == 'github/docs' }} | |
steps: | |
# Each of these ifs needs to be repeated at each step to make sure the required check still runs | |
# Even if if doesn't do anything | |
- name: Check out repo | |
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | |
with: | |
# See https://github.com/tj-actions/changed-files#on-pull_request- | |
fetch-depth: 2 | |
- uses: ./.github/actions/node-npm-setup | |
- uses: ./.github/actions/get-docs-early-access | |
if: ${{ github.repository == 'github/docs-internal' }} | |
with: | |
token: ${{ secrets.DOCS_BOT_PAT_READPUBLICKEY }} | |
- uses: ./.github/actions/cache-nextjs | |
- name: Run build script | |
run: npm run build | |
- name: Get changed files | |
id: changed-files | |
uses: tj-actions/changed-files@40853de9f8ce2d6cfdc73c1b96f14e22ba44aec4 # v45.0.0 | |
with: | |
# No need to escape the file names because we make the output of | |
# tj-actions/changed-files be set as an environment variable. Not | |
# as a direct input to the line of bash that uses it. | |
# See https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions#using-an-intermediate-environment-variable | |
safe_output: false | |
files: 'content/**' | |
# Necessary so we can know what the old name was when a | |
# content file was renamed. | |
output_renamed_files_as_deleted_and_added: true | |
- name: Run tests | |
env: | |
CHANGED_FILES: ${{ steps.changed-files.outputs.modified_files }} | |
DELETED_FILES: ${{ steps.changed-files.outputs.deleted_files }} | |
run: npm test -- src/content-render/tests/render-changed-and-deleted-files.js |