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 - 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_BASE }} - uses: ./.github/actions/cache-nextjs - name: Run build script run: npm run build - name: Get changed files id: changed_files uses: ./.github/actions/get-changed-files with: files: 'content/**' - name: Run tests env: CHANGED_FILES: ${{ steps.changed_files.outputs.filtered_changed_files }} DELETED_FILES: ${{ steps.changed_files.outputs.filtered_deleted_files }} run: npm test -- src/content-render/tests/render-changed-and-deleted-files.js