From 671f39cd134c5105e9a5150518060b7d820fcce2 Mon Sep 17 00:00:00 2001 From: Bazilio050 Date: Mon, 31 Aug 2026 21:22:14 +0400 Subject: [PATCH] Update test.yml --- .github/workflows/test.yml | 173 ++++--------------------------------- 1 file changed, 15 insertions(+), 158 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 05f6da9695f9..f45ef402d625 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,176 +1,33 @@ name: Test -# **What it does**: Runs our tests. -# **Why we have it**: We want our tests to pass before merging code. -# **Who does it impact**: Docs engineering, open-source engineering contributors. -# -# For a catalog of what each suite covers and how risky it is to admin-merge -# past it when red, see src/tests/SUITES.md. - on: - workflow_dispatch: - merge_group: + push: + branches: [ "main", "master" ] pull_request: - -permissions: - contents: read - pull-requests: read - -# This allows a subsequently queued workflow run to interrupt previous runs -concurrency: - group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' - cancel-in-progress: true - -env: - # Setting this will activate the vitest tests that depend on actually - # sending real search queries to Elasticsearch - ELASTICSEARCH_URL: http://localhost:9200/ + branches: [ "main", "master" ] + workflow_dispatch: jobs: test: - name: ${{ matrix.name }} - if: github.repository == 'github/docs-internal' || github.repository == 'github/docs' + name: Run Route Tests runs-on: ubuntu-latest - timeout-minutes: 60 - strategy: - fail-fast: false - matrix: - # Note that *if you add* to this, remember to also add that - # to the **required checks** in the branch protection rules. - name: - # src/ directory - - archives - - article-api - - assets - - audit-logs - - automated-pipelines - # - bookmarklets - # - code-scanning - # - codeql-cli - - color-schemes - - content-linter - - content-render - - data-directory - # - dev-toc - - early-access - - events - - fixtures - - frame - - github-apps - - graphql - - landings - - languages - # - links - - observability - # - open-source - # - pages - - products - - redirects - - release-notes - - rest - - search - - secret-scanning - - shielding - # - tests - # - tools - - versions - - webhooks - - workflows - - # The languages suite only runs on docs-internal - isPrivateRepo: - - ${{ github.repository == 'github/docs-internal' }} - exclude: - - name: languages - isPrivateRepo: false 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@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - with: - # Fetch 2 commits so tj-actions/changed-files can diff without extra API calls - fetch-depth: 2 - - - uses: ./.github/actions/setup-elasticsearch - if: ${{ matrix.name == 'search' || matrix.name == 'languages' }} + uses: actions/checkout@v4 - - uses: ./.github/actions/node-npm-setup - - - uses: ./.github/actions/get-docs-early-access - if: ${{ github.repository == 'github/docs-internal' }} + - name: Set up Python + uses: actions/setup-python@v5 with: - token: ${{ secrets.DOCS_BOT_PAT_BASE }} - - - name: Check the test fixture data (if applicable) - if: ${{ matrix.name == 'fixtures' }} - run: npm run copy-fixture-data -- --check + python-version: "3.10" - # This keeps our fixture content/data in check - - name: Check the test fixture content (if applicable) - if: ${{ matrix.name == 'fixtures' }} - env: - ROOT: src/fixtures/fixtures + - name: Install dependencies run: | - # If either of these fail, it means our fixture content's internal - # links can and should be updated. - npm run update-internal-links -- --dry-run --check --strict \ - src/fixtures/fixtures/content \ - --exclude src/fixtures/fixtures/content/get-started/foo/typo-autotitling.md \ - --exclude src/fixtures/fixtures/content/get-started/foo/anchor-autotitling.md - npm run update-internal-links -- --dry-run --check --strict \ - src/fixtures/fixtures/data - - - name: Clone all translations - if: ${{ matrix.name == 'languages' }} - uses: ./.github/actions/clone-translations - with: - token: ${{ secrets.DOCS_BOT_PAT_BASE }} - - - name: Gather files changed - if: ${{ matrix.name == 'content-linter' }} - id: changed_files - uses: tj-actions/changed-files@22103cc46bda19c2b464ffe86db46df6922fd323 # v47.0.5 - - - name: Write changed files to diff file - if: ${{ matrix.name == 'content-linter' }} - run: echo "${{ steps.changed_files.outputs.all_modified_files }}" > get_diff_files.txt - - - uses: ./.github/actions/cache-nextjs - - - name: Run build script - run: npm run build - - - uses: ./.github/actions/warmup-remotejson-cache - # Only the 'routing' tests include end-to-end tests about - # archived enterprise server URLs. - if: ${{ matrix.name == 'redirects' }} - - - uses: ./.github/actions/precompute-pageinfo - # Only the 'pageinfo' tests include end-to-end tests about this. - if: ${{ matrix.name == 'article-api' }} - env: - ROOT: src/fixtures/fixtures - - - name: Index fixtures into the local Elasticsearch - # For the sake of saving time, only run this step if the group - # is one that will run tests against an Elasticsearch on localhost. - if: ${{ matrix.name == 'search' || matrix.name == 'languages' }} - run: npm run index-test-fixtures + python -m pip install --upgrade pip + if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - name: Run tests env: - DIFF_FILE: get_diff_files.txt - CHANGELOG_CACHE_FILE_PATH: src/fixtures/fixtures/changelog-feed.json - # By default, when `process.env.NODE_ENV === 'test'` it forces the - # tests run only in English. The exception is the - # `languages` suite which needs all languages to be set up. - ENABLED_LANGUAGES: ${{ matrix.name == 'languages' && 'all' || '' }} - ROOT: ${{ (matrix.name == 'fixtures' || matrix.name == 'article-api' || matrix.name == 'landings' ) && 'src/fixtures/fixtures' || '' }} - TRANSLATIONS_FIXTURE_ROOT: ${{ (matrix.name == 'fixtures' || matrix.name == 'article-api') && 'src/fixtures/fixtures/translations' || '' }} - # Enable debug logging when "Re-run jobs with debug logging" is used in GitHub Actions UI - # This will output additional timing and path information to help diagnose timeout issues - RUNNER_DEBUG: ${{ runner.debug }} - VITEST_FLAGS: ${{ matrix.name == 'article-api' && '--no-file-parallelism --maxWorkers=1' || '' }} - run: npm test -- $VITEST_FLAGS src/${{ matrix.name }}/tests/ + PYTHONUNBUFFERED: "1" + GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }} + run: python -u tests/test_routes.py