{
  "doc": {
    "id": "ui-coverage/results-api",
    "title": "API for test results | Cypress UI Coverage",
    "description": "Programmatically fetch UI Coverage results in a CI environment and fail the build if the test coverage is not acceptable.",
    "section": "ui-coverage",
    "source_path": "/llm/markdown/ui-coverage/results-api.md",
    "version": "48b03b5502f7aea1d0454750cce208f775403542",
    "updated_at": "2026-05-20T19:00:20.270Z",
    "headings": [
      {
        "id": "ui-coverage/results-api#results-api",
        "text": "Results API",
        "level": 1
      },
      {
        "id": "ui-coverage/results-api#supported-ci-providers",
        "text": "Supported CI Providers",
        "level": 2
      },
      {
        "id": "ui-coverage/results-api#installation",
        "text": "Installation",
        "level": 2
      },
      {
        "id": "ui-coverage/results-api#usage",
        "text": "Usage",
        "level": 2
      },
      {
        "id": "ui-coverage/results-api#1-get-the-ui-coverage-results",
        "text": "1. Get the UI Coverage Results",
        "level": 3
      },
      {
        "id": "ui-coverage/results-api#basic-example",
        "text": "Basic example",
        "level": 4
      },
      {
        "id": "ui-coverage/results-api#how-to-assert-test-coverage-meets-your-requirements",
        "text": "How to assert test coverage meets your requirements",
        "level": 4
      },
      {
        "id": "ui-coverage/results-api#getuicoverageresults-arguments",
        "text": "getUICoverageResults arguments",
        "level": 4
      },
      {
        "id": "ui-coverage/results-api#result-details",
        "text": "Result Details",
        "level": 4
      },
      {
        "id": "ui-coverage/results-api#comparing-against-a-baseline",
        "text": "Comparing against a baseline",
        "level": 2
      },
      {
        "id": "ui-coverage/results-api#2-add-to-ci-workflow",
        "text": "2. Add to CI Workflow",
        "level": 3
      },
      {
        "id": "ui-coverage/results-api#example-job-workflow-update",
        "text": "Example Job Workflow Update:",
        "level": 4
      },
      {
        "id": "ui-coverage/results-api#required-ci-environment-variables",
        "text": "Required CI environment variables",
        "level": 2
      },
      {
        "id": "ui-coverage/results-api#local-development-example",
        "text": "Local development example",
        "level": 2
      },
      {
        "id": "ui-coverage/results-api#supported-ci-provider-overview",
        "text": "Supported CI Provider Overview",
        "level": 2
      },
      {
        "id": "ui-coverage/results-api#github-actions",
        "text": "GitHub Actions",
        "level": 3
      },
      {
        "id": "ui-coverage/results-api#essential-environment-variables",
        "text": "Essential environment variables",
        "level": 4
      },
      {
        "id": "ui-coverage/results-api#prerequisites",
        "text": "Prerequisites",
        "level": 4
      },
      {
        "id": "ui-coverage/results-api#gitlab-pipelines",
        "text": "GitLab Pipelines",
        "level": 3
      },
      {
        "id": "ui-coverage/results-api#essential-environment-variables",
        "text": "Essential environment variables",
        "level": 4
      },
      {
        "id": "ui-coverage/results-api#prerequisites",
        "text": "Prerequisites",
        "level": 4
      },
      {
        "id": "ui-coverage/results-api#jenkins",
        "text": "Jenkins",
        "level": 3
      },
      {
        "id": "ui-coverage/results-api#essential-terms",
        "text": "Essential terms",
        "level": 4
      },
      {
        "id": "ui-coverage/results-api#essential-environment-variables",
        "text": "Essential environment variables",
        "level": 4
      },
      {
        "id": "ui-coverage/results-api#prerequisites",
        "text": "Prerequisites",
        "level": 4
      },
      {
        "id": "ui-coverage/results-api#azure",
        "text": "Azure",
        "level": 3
      },
      {
        "id": "ui-coverage/results-api#essential-environment-variables",
        "text": "Essential environment variables",
        "level": 4
      },
      {
        "id": "ui-coverage/results-api#prerequisites",
        "text": "Prerequisites",
        "level": 4
      },
      {
        "id": "ui-coverage/results-api#circleci",
        "text": "CircleCI",
        "level": 3
      },
      {
        "id": "ui-coverage/results-api#essential-environment-variables",
        "text": "Essential environment variables",
        "level": 4
      },
      {
        "id": "ui-coverage/results-api#prerequisites",
        "text": "Prerequisites",
        "level": 4
      },
      {
        "id": "ui-coverage/results-api#aws-codebuild",
        "text": "AWS CodeBuild",
        "level": 3
      },
      {
        "id": "ui-coverage/results-api#essential-environment-variables",
        "text": "Essential environment variables",
        "level": 4
      },
      {
        "id": "ui-coverage/results-api#drone",
        "text": "Drone",
        "level": 3
      },
      {
        "id": "ui-coverage/results-api#essential-environment-variables",
        "text": "Essential environment variables",
        "level": 4
      },
      {
        "id": "ui-coverage/results-api#prerequisites",
        "text": "Prerequisites",
        "level": 4
      },
      {
        "id": "ui-coverage/results-api#bitbucket",
        "text": "Bitbucket",
        "level": 3
      },
      {
        "id": "ui-coverage/results-api#essential-environment-variables",
        "text": "Essential environment variables",
        "level": 4
      },
      {
        "id": "ui-coverage/results-api#prerequisites",
        "text": "Prerequisites",
        "level": 4
      },
      {
        "id": "ui-coverage/results-api#buildkite",
        "text": "Buildkite",
        "level": 3
      },
      {
        "id": "ui-coverage/results-api#essential-environment-variables",
        "text": "Essential environment variables",
        "level": 4
      },
      {
        "id": "ui-coverage/results-api#prerequisites",
        "text": "Prerequisites",
        "level": 4
      }
    ]
  },
  "chunks": [
    {
      "id": "ui-coverage/results-api#supported-ci-providers",
      "doc_id": "ui-coverage/results-api",
      "heading": "Supported CI Providers",
      "heading_level": 2,
      "content_markdown": "## Supported CI Providers\n\nThe utility supports the following CI providers. Refer to the linked guides for setup details:\n\n*   [Azure](/llm/markdown/app/continuous-integration/overview.md#Azure-Pipelines) (requires Cypress v13.13.1)\n*   [CircleCI](/llm/markdown/app/continuous-integration/circleci.md)\n*   [GitHub Actions](/llm/markdown/app/continuous-integration/github-actions.md)\n*   [GitLab](/llm/markdown/app/continuous-integration/gitlab-ci.md)\n*   [Jenkins](/llm/markdown/app/continuous-integration/overview.md#Jenkins)\n*   [AWS CodeBuild](/llm/markdown/app/continuous-integration/aws-codebuild.md)\n*   Drone\n*   [Bitbucket](/llm/markdown/app/continuous-integration/bitbucket-pipelines.md)\n*   Buildkite\n\nFor other CI providers, contact Cypress Support to request support.\n",
      "section": "ui-coverage",
      "anchors": [
        "supported-ci-providers"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 69
    },
    {
      "id": "ui-coverage/results-api#installation",
      "doc_id": "ui-coverage/results-api",
      "heading": "Installation",
      "heading_level": 2,
      "content_markdown": "## Installation\n\nInstall the `@cypress/extract-cloud-results` module in your install step in CI.\n\n```\nnpm install --force https://cdn.cypress.io/extract-cloud-results/v1/extract-cloud-results.tgz\n```\n\nDo not check this module in as a dependency. We recommend you install it separately outside of your normal module installation. Use `--force` to get the latest version.\n\nIf you check this in as a dependency, your installation will fail when we update the package.\n",
      "section": "ui-coverage",
      "anchors": [
        "installation"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 84
    },
    {
      "id": "ui-coverage/results-api#usage",
      "doc_id": "ui-coverage/results-api",
      "heading": "Usage",
      "heading_level": 2,
      "content_markdown": "## Usage\n\n### **1\\. Get the UI Coverage Results**\n\nWrite a script to fetch UI Coverage results and assert test coverage criteria. This script will be executed in CI.\n\n#### Basic example\n\nThis snippet uses the `getUICoverageResults()` helper to log out the results. It assumes your Project ID and Record Key variable are set. The following should work in any of the supported CI Providers out of the box:\n\nscripts/verifyUICoverageResults.js\n\n```\n// Assuming these environment variables are set:// CYPRESS_PROJECT_ID=your-id// CYPRESS_RECORD_KEY=your-record-keyconst { getUICoverageResults } = require('@cypress/extract-cloud-results')getUICoverageResults().then((results) => {  // use `console.dir` instead of `console.log` because the data is nested  console.dir(results, { depth: Infinity })})\n```\n\n#### How to assert test coverage meets your requirements\n\nThe following example demonstrates how to verify that test coverage meets minimum thresholds:\n\nscripts/verifyUICoverageResults.js\n\n```\nconst { getUICoverageResults } = require('@cypress/extract-cloud-results')getUICoverageResults({  projectId: process.env.CYPRESS_PROJECT_ID, // Optional if set from env  recordKey: process.env.CYPRESS_RECORD_KEY, // Optional if set from env  runTags: [process.env.RUN_TAGS], // Required if recording multiple runs}).then((results) => {  const { runNumber, uiCoverageReportUrl, summary, views } = results  console.log(    `Received ${summary.isPartialReport ? 'partial' : ''} results for run #${runNumber}.`  )  console.log(`See full report at ${uiCoverageReportUrl}.`)  // Verify overall coverage  if (summary.coverage < 80) {    throw new Error(      `Project coverage is ${summary.coverage}, below the minimum threshold of 80%.`    )  }  const criticalViews = [/login/, /checkout/]  // Verify critical view coverage  views.forEach((view) => {    const { displayName, coverage, uiCoverageReportUrl } = view    if (      criticalViews.some((pattern) => pattern.test(displayName)) &&      coverage < 95    ) {      throw new Error(        `Critical view \"${displayName}\" coverage is ${coverage}%, below the required 95%. See: ${uiCoverageReportUrl}`      )    }  })  console.log('UI Coverage is above minimum thresholds.')})\n```\n\n#### `getUICoverageResults` arguments\n\n`getUICoverageResults` accpets the following arguments:\n\n```\ngetUICoverageResults({  // The Cypress project ID.  // Optional if the CYPRESS_PROJECT_ID env is set  projectId: string  // The project's record key.  // Optional if the CYPRESS_RECORD_KEY env is set  recordKey: string  // The run tags associated with the run.  // Required IF you are recording multiple Cypress runs from a single CI build.  // Pass the run tags you used when recording in each run  runTags: string[]})\n```\n\n#### Result Details\n\nThe `getUICoverageResults` utility returns the following data:\n\n```\n{  // The run number of the identified build.  runNumber: number  // The run url for the identified build.  runUrl: 'https://cloud.cypress.io/projects/:project_id/runs/:run_number'  // The status of the identified build.  runStatus: 'passed' | 'failed' | 'errored' | 'timedOut' | 'cancelled' | 'noTests'   // The url that links to UI Coverage report for the identified build.  uiCoverageReportUrl: 'https://cloud.cypress.io/[...]'  summary: {    // Indicates whether a complete UI Coverage report was generated.    // For example, if a run was cancelled and the report expected to run    // for 20 specs, but only 10 ran, this would result in a partial report.    isPartialReport: boolean    // The report coverage from 0-100 with 2 decimal precision (e.g 92.45).    coverage: number    // The number of views tested and analyzed.    viewCount: number    // The number of interactive elements that were tested.    testedElementsCount:number    // The number of interactive elements that were not tested.    untestedElementsCount: number  }  // The list of tested views and the coverage of each page.  views: [{    // The sanatized URL pattern shown in the report.    displayName: string    // The view coverage from 0-100 with 2 decimal precision (e.g 92.45).    coverage: number    // The number of interactive elements that were tested on this view.    testedElementsCount:number    // The number of interactive elements that were not tested on this view.    untestedElementsCount: number    // The url that links the report for this view.    uiCoverageReportUrl: 'https://cloud.cypress.io/[...]'  }]}\n```\n",
      "section": "ui-coverage",
      "anchors": [
        "usage"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 775
    },
    {
      "id": "ui-coverage/results-api#1-get-the-ui-coverage-results",
      "doc_id": "ui-coverage/results-api",
      "heading": "1. Get the UI Coverage Results",
      "heading_level": 3,
      "content_markdown": "### **1\\. Get the UI Coverage Results**\n\nWrite a script to fetch UI Coverage results and assert test coverage criteria. This script will be executed in CI.\n\n#### Basic example\n\nThis snippet uses the `getUICoverageResults()` helper to log out the results. It assumes your Project ID and Record Key variable are set. The following should work in any of the supported CI Providers out of the box:\n\nscripts/verifyUICoverageResults.js\n\n```\n// Assuming these environment variables are set:// CYPRESS_PROJECT_ID=your-id// CYPRESS_RECORD_KEY=your-record-keyconst { getUICoverageResults } = require('@cypress/extract-cloud-results')getUICoverageResults().then((results) => {  // use `console.dir` instead of `console.log` because the data is nested  console.dir(results, { depth: Infinity })})\n```\n\n#### How to assert test coverage meets your requirements\n\nThe following example demonstrates how to verify that test coverage meets minimum thresholds:\n\nscripts/verifyUICoverageResults.js\n\n```\nconst { getUICoverageResults } = require('@cypress/extract-cloud-results')getUICoverageResults({  projectId: process.env.CYPRESS_PROJECT_ID, // Optional if set from env  recordKey: process.env.CYPRESS_RECORD_KEY, // Optional if set from env  runTags: [process.env.RUN_TAGS], // Required if recording multiple runs}).then((results) => {  const { runNumber, uiCoverageReportUrl, summary, views } = results  console.log(    `Received ${summary.isPartialReport ? 'partial' : ''} results for run #${runNumber}.`  )  console.log(`See full report at ${uiCoverageReportUrl}.`)  // Verify overall coverage  if (summary.coverage < 80) {    throw new Error(      `Project coverage is ${summary.coverage}, below the minimum threshold of 80%.`    )  }  const criticalViews = [/login/, /checkout/]  // Verify critical view coverage  views.forEach((view) => {    const { displayName, coverage, uiCoverageReportUrl } = view    if (      criticalViews.some((pattern) => pattern.test(displayName)) &&      coverage < 95    ) {      throw new Error(        `Critical view \"${displayName}\" coverage is ${coverage}%, below the required 95%. See: ${uiCoverageReportUrl}`      )    }  })  console.log('UI Coverage is above minimum thresholds.')})\n```\n\n#### `getUICoverageResults` arguments\n\n`getUICoverageResults` accpets the following arguments:\n\n```\ngetUICoverageResults({  // The Cypress project ID.  // Optional if the CYPRESS_PROJECT_ID env is set  projectId: string  // The project's record key.  // Optional if the CYPRESS_RECORD_KEY env is set  recordKey: string  // The run tags associated with the run.  // Required IF you are recording multiple Cypress runs from a single CI build.  // Pass the run tags you used when recording in each run  runTags: string[]})\n```\n\n#### Result Details\n\nThe `getUICoverageResults` utility returns the following data:\n\n```\n{  // The run number of the identified build.  runNumber: number  // The run url for the identified build.  runUrl: 'https://cloud.cypress.io/projects/:project_id/runs/:run_number'  // The status of the identified build.  runStatus: 'passed' | 'failed' | 'errored' | 'timedOut' | 'cancelled' | 'noTests'   // The url that links to UI Coverage report for the identified build.  uiCoverageReportUrl: 'https://cloud.cypress.io/[...]'  summary: {    // Indicates whether a complete UI Coverage report was generated.    // For example, if a run was cancelled and the report expected to run    // for 20 specs, but only 10 ran, this would result in a partial report.    isPartialReport: boolean    // The report coverage from 0-100 with 2 decimal precision (e.g 92.45).    coverage: number    // The number of views tested and analyzed.    viewCount: number    // The number of interactive elements that were tested.    testedElementsCount:number    // The number of interactive elements that were not tested.    untestedElementsCount: number  }  // The list of tested views and the coverage of each page.  views: [{    // The sanatized URL pattern shown in the report.    displayName: string    // The view coverage from 0-100 with 2 decimal precision (e.g 92.45).    coverage: number    // The number of interactive elements that were tested on this view.    testedElementsCount:number    // The number of interactive elements that were not tested on this view.    untestedElementsCount: number    // The url that links the report for this view.    uiCoverageReportUrl: 'https://cloud.cypress.io/[...]'  }]}\n```\n",
      "section": "ui-coverage",
      "anchors": [
        "1-get-the-ui-coverage-results"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 772
    },
    {
      "id": "ui-coverage/results-api#basic-example",
      "doc_id": "ui-coverage/results-api",
      "heading": "Basic example",
      "heading_level": 4,
      "content_markdown": "#### Basic example\n\nThis snippet uses the `getUICoverageResults()` helper to log out the results. It assumes your Project ID and Record Key variable are set. The following should work in any of the supported CI Providers out of the box:\n\nscripts/verifyUICoverageResults.js\n\n```\n// Assuming these environment variables are set:// CYPRESS_PROJECT_ID=your-id// CYPRESS_RECORD_KEY=your-record-keyconst { getUICoverageResults } = require('@cypress/extract-cloud-results')getUICoverageResults().then((results) => {  // use `console.dir` instead of `console.log` because the data is nested  console.dir(results, { depth: Infinity })})\n```\n",
      "section": "ui-coverage",
      "anchors": [
        "basic-example"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 100
    },
    {
      "id": "ui-coverage/results-api#how-to-assert-test-coverage-meets-your-requirements",
      "doc_id": "ui-coverage/results-api",
      "heading": "How to assert test coverage meets your requirements",
      "heading_level": 4,
      "content_markdown": "#### How to assert test coverage meets your requirements\n\nThe following example demonstrates how to verify that test coverage meets minimum thresholds:\n\nscripts/verifyUICoverageResults.js\n\n```\nconst { getUICoverageResults } = require('@cypress/extract-cloud-results')getUICoverageResults({  projectId: process.env.CYPRESS_PROJECT_ID, // Optional if set from env  recordKey: process.env.CYPRESS_RECORD_KEY, // Optional if set from env  runTags: [process.env.RUN_TAGS], // Required if recording multiple runs}).then((results) => {  const { runNumber, uiCoverageReportUrl, summary, views } = results  console.log(    `Received ${summary.isPartialReport ? 'partial' : ''} results for run #${runNumber}.`  )  console.log(`See full report at ${uiCoverageReportUrl}.`)  // Verify overall coverage  if (summary.coverage < 80) {    throw new Error(      `Project coverage is ${summary.coverage}, below the minimum threshold of 80%.`    )  }  const criticalViews = [/login/, /checkout/]  // Verify critical view coverage  views.forEach((view) => {    const { displayName, coverage, uiCoverageReportUrl } = view    if (      criticalViews.some((pattern) => pattern.test(displayName)) &&      coverage < 95    ) {      throw new Error(        `Critical view \"${displayName}\" coverage is ${coverage}%, below the required 95%. See: ${uiCoverageReportUrl}`      )    }  })  console.log('UI Coverage is above minimum thresholds.')})\n```\n",
      "section": "ui-coverage",
      "anchors": [
        "how-to-assert-test-coverage-meets-your-requirements"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 217
    },
    {
      "id": "ui-coverage/results-api#getuicoverageresults-arguments",
      "doc_id": "ui-coverage/results-api",
      "heading": "getUICoverageResults arguments",
      "heading_level": 4,
      "content_markdown": "#### `getUICoverageResults` arguments\n\n`getUICoverageResults` accpets the following arguments:\n\n```\ngetUICoverageResults({  // The Cypress project ID.  // Optional if the CYPRESS_PROJECT_ID env is set  projectId: string  // The project's record key.  // Optional if the CYPRESS_RECORD_KEY env is set  recordKey: string  // The run tags associated with the run.  // Required IF you are recording multiple Cypress runs from a single CI build.  // Pass the run tags you used when recording in each run  runTags: string[]})\n```\n",
      "section": "ui-coverage",
      "anchors": [
        "getuicoverageresults-arguments"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 103
    },
    {
      "id": "ui-coverage/results-api#result-details",
      "doc_id": "ui-coverage/results-api",
      "heading": "Result Details",
      "heading_level": 4,
      "content_markdown": "#### Result Details\n\nThe `getUICoverageResults` utility returns the following data:\n\n```\n{  // The run number of the identified build.  runNumber: number  // The run url for the identified build.  runUrl: 'https://cloud.cypress.io/projects/:project_id/runs/:run_number'  // The status of the identified build.  runStatus: 'passed' | 'failed' | 'errored' | 'timedOut' | 'cancelled' | 'noTests'   // The url that links to UI Coverage report for the identified build.  uiCoverageReportUrl: 'https://cloud.cypress.io/[...]'  summary: {    // Indicates whether a complete UI Coverage report was generated.    // For example, if a run was cancelled and the report expected to run    // for 20 specs, but only 10 ran, this would result in a partial report.    isPartialReport: boolean    // The report coverage from 0-100 with 2 decimal precision (e.g 92.45).    coverage: number    // The number of views tested and analyzed.    viewCount: number    // The number of interactive elements that were tested.    testedElementsCount:number    // The number of interactive elements that were not tested.    untestedElementsCount: number  }  // The list of tested views and the coverage of each page.  views: [{    // The sanatized URL pattern shown in the report.    displayName: string    // The view coverage from 0-100 with 2 decimal precision (e.g 92.45).    coverage: number    // The number of interactive elements that were tested on this view.    testedElementsCount:number    // The number of interactive elements that were not tested on this view.    untestedElementsCount: number    // The url that links the report for this view.    uiCoverageReportUrl: 'https://cloud.cypress.io/[...]'  }]}\n```\n",
      "section": "ui-coverage",
      "anchors": [
        "result-details"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 316
    },
    {
      "id": "ui-coverage/results-api#comparing-against-a-baseline",
      "doc_id": "ui-coverage/results-api",
      "heading": "Comparing against a baseline",
      "heading_level": 2,
      "content_markdown": "## Comparing against a baseline\n\nFor comprehensive examples of comparing results against a baseline, including complete code examples, baseline structure, and best practices, see the [Block pull requests and set policies](/llm/markdown/ui-coverage/guides/block-pull-requests.md#comparing-against-a-baseline) guide.\n\n### **2\\. Add to CI Workflow**\n\nIn your CI workflow that runs your Cypress tests,\n\n1.  Update your install job to install the `@cypress/extract-cloud-results` module.\n2.  Pass in the necessary arguments to `getUICoverageResults`.\n3.  Add a new step to the job that runs your Cypress tests to verify the UI Coverage results.\n\nIf you record multiple runs in a single CI build, you must record these runs using the `--tag` parameter and then call `getUICoverageResults` with the `runTags` argument for each run.\n\nThis is necessary to identify each unique run and return a corresponding set of results. The tags are how each run is uniquely identified. Tags can also be used to activate [Profiles](/llm/markdown/ui-coverage/configuration/profiles.md) that apply different configuration settings to your runs.\n\n**Example**\n\n*   Let's imagine that within a single CI build you call `cypress run --record` multiple times because you're running one set of tests against a `staging` environment, followed by a `production` environment.\n*   In this scenario, you pass a different `--tag` to each cypress run\n    *   `cypress run --record --tag staging`\n    *   `cypress run --record --tag production`\n*   When calling `getUICoverageResults` you would then pass these same tags to get the unique set of results for each run\n    *   `getUICoverageResults({ runTags: ['staging']})`\n    *   `getUICoverageResults({ runTags: ['production']})`\n\n#### Example Job Workflow Update:\n\n*   GitHub Actions\n*   GitLab\n*   Jenkins\n*   Azure\n*   CircleCI\n*   AWS CodeBuild\n*   Drone\n*   Bitbucket\n*   Buildkite\n\ntest\\_cypress.yaml\n\n```\nname: My Workflowon: pushenv:  CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}jobs:  run-cypress:    runs-on: ubuntu-24.04    steps:      - name: Checkout        uses: actions/checkout@v6      - name: install        run: npm install      - name: Run        run: npx cypress run --record+     - name: Verify UI Coverage Results+       run: |+          npm install --force https://cdn.cypress.io/extract-cloud-results/v1/extract-cloud-results.tgz+          node ./scripts/verifyUICoverageResults.js\n```\n\n.git-ci.yml\n\n```\nname: Run Cypress Testsimage: node:lateststages:  - testrun-cypress:  stage: test  secrets:    CYPRESS_RECORD_KEY:      vault: vault/cypressRecordKey  script:    - npm install    - npx cypress run --record+   - npm install --force https://cdn.cypress.io/extract-cloud-results/v1/extract-cloud-results.tgz+   - node ./scripts/verifyUICoverageResults.js\n```\n\n```\npipeline {  agent {    docker {      image 'cypress/base:22.15.0'    }  }  environment {    CYPRESS_PROJECT_ID: 'xxxx'    CYPRESS_RECORD_KEY = credentials('cypress-record-key')  }  stages {    stage('build and test') {      steps {        sh 'npm ci'        sh 'npx cypress run --record'      }    }+   stage('Verify UI Coverage Results') {+     steps {+       sh 'npm install --force https://cdn.cypress.io/extract-cloud-results/v1/extract-cloud-results.tgz'+       sh 'node ./scripts/verifyUICoverageResults.js'+     }+   }  }}\n```\n\n```\njobs:  - job: run_tests    pool:      vmImage: 'ubuntu-latest'    steps:      - task: NodeTool@0        inputs:          versionSpec: '20.x'          displayName: 'Install Node.js'      - script: npm i        displayName: 'Install npm dependencies'      - script: npx cypress run --record        displayName: 'Run Cypress tests'        env:          # avoid warnings about terminal          TERM: xterm          CYPRESS_RECORD_KEY: $(CYPRESS_RECORD_KEY)+     - script: |+           npm install --force https://cdn.cypress.io/extract-cloud-results/v1/extract-cloud-results.tgz+           node ./scripts/verifyUICoverageResults.js+       displayName: 'Verify UI Coverage Results'+       env:+         CYPRESS_PROJECT_ID: $(CYPRESS_PROJECT_ID)+         CYPRESS_RECORD_KEY: $(CYPRESS_RECORD_KEY)\n```\n\n```\nversion: 2.1jobs:  linux-test:    docker:      - image: cypress/base:22.15.0    working_directory: ~/repo    steps:      - checkout      - run: npm install      - run: npx run cypress:run --record+     - run: npm install --force https://cdn.cypress.io/extract-cloud-results/beta/v1/extract-cloud-results.tgz+     - run: node ./scripts/verifyUICoverageResults.jsworkflows:  version: 2  tests:    jobs:      - run-cypress\n```\n\nbuildspec.yaml\n\n```\nphases:  install:    runtime-versions:      nodejs: latest    commands:      # Set COMMIT_INFO variables to send Git specifics to Cypress Cloud when recording      # https://docs.cypress.io/app/continuous-integration/overview#Git-information      - export COMMIT_INFO_BRANCH=\"$(git rev-parse HEAD | xargs git name-rev |        cut -d' ' -f2 | sed 's/remotes\\/origin\\///g')\"      - export COMMIT_INFO_MESSAGE=\"$(git log -1 --pretty=%B)\"      - export COMMIT_INFO_EMAIL=\"$(git log -1 --pretty=%ae)\"      - export COMMIT_INFO_AUTHOR=\"$(git log -1 --pretty=%an)\"      - export COMMIT_INFO_SHA=\"$(git log -1 --pretty=%H)\"      - export COMMIT_INFO_REMOTE=\"$(git config --get remote.origin.url)\"      - npm ci  pre_build:    commands:      - npm run cypress:verify      - npm run cypress:info  build:    commands:      - CYPRESS_INTERNAL_ENV=staging CYPRESS_PROJECT_ID=[slug] npx cypress run --record --key [KEY]+  post_build:+    commands:+      - npm install --force https://cdn.cypress.io/extract-cloud-results/v1/extract-cloud-results.tgz+      - CYPRESS_INTERNAL_ENV=staging CYPRESS_PROJECT_ID=[slug] CYPRESS_RECORD_KEY=[KEY] node ./scripts/verifyUICoverageResults.js\n```\n\n.drone.yaml\n\n```\n  kind: pipeline  name: defaultenvironment:CYPRESS_PROJECT_ID: example_project_slugCYPRESS_RECORD_KEY:from_secret: example_record_key_secretsteps:- name: test  image: node:latest  commands:  - npm install  - npx cypress run --record* - name: validate* image: node:latest* commands:* - npm install --force https://cdn.cypress.io/extract-cloud-results/v1/extract-cloud-results.tgz* - node ./scripts/verifyUICoverageResults.js\n```\n\nbitbucket-pipelines.yml\n\n```\nimage: node:latestpipelines:  default:    - step:        name: Run Cypress tests        script:          - npm install          - npx cypress run --record+         - npm install --force https://cdn.cypress.io/extract-cloud-results/v1/extract-cloud-results.tgz+         - node ./scripts/verifyUICoverageResults.js\n```\n\npipeline.yml\n\n```\nsteps:  - label: \"Run Cypress tests\"    command:      - npm install      - npx cypress run --record+     - npm install --force https://cdn.cypress.io/extract-cloud-results/v1/extract-cloud-results.tgz+     - node ./scripts/verifyUICoverageResults.js\n```\n",
      "section": "ui-coverage",
      "anchors": [
        "comparing-against-a-baseline"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 944
    },
    {
      "id": "ui-coverage/results-api#2-add-to-ci-workflow",
      "doc_id": "ui-coverage/results-api",
      "heading": "2. Add to CI Workflow",
      "heading_level": 3,
      "content_markdown": "### **2\\. Add to CI Workflow**\n\nIn your CI workflow that runs your Cypress tests,\n\n1.  Update your install job to install the `@cypress/extract-cloud-results` module.\n2.  Pass in the necessary arguments to `getUICoverageResults`.\n3.  Add a new step to the job that runs your Cypress tests to verify the UI Coverage results.\n\nIf you record multiple runs in a single CI build, you must record these runs using the `--tag` parameter and then call `getUICoverageResults` with the `runTags` argument for each run.\n\nThis is necessary to identify each unique run and return a corresponding set of results. The tags are how each run is uniquely identified. Tags can also be used to activate [Profiles](/llm/markdown/ui-coverage/configuration/profiles.md) that apply different configuration settings to your runs.\n\n**Example**\n\n*   Let's imagine that within a single CI build you call `cypress run --record` multiple times because you're running one set of tests against a `staging` environment, followed by a `production` environment.\n*   In this scenario, you pass a different `--tag` to each cypress run\n    *   `cypress run --record --tag staging`\n    *   `cypress run --record --tag production`\n*   When calling `getUICoverageResults` you would then pass these same tags to get the unique set of results for each run\n    *   `getUICoverageResults({ runTags: ['staging']})`\n    *   `getUICoverageResults({ runTags: ['production']})`\n\n#### Example Job Workflow Update:\n\n*   GitHub Actions\n*   GitLab\n*   Jenkins\n*   Azure\n*   CircleCI\n*   AWS CodeBuild\n*   Drone\n*   Bitbucket\n*   Buildkite\n\ntest\\_cypress.yaml\n\n```\nname: My Workflowon: pushenv:  CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}jobs:  run-cypress:    runs-on: ubuntu-24.04    steps:      - name: Checkout        uses: actions/checkout@v6      - name: install        run: npm install      - name: Run        run: npx cypress run --record+     - name: Verify UI Coverage Results+       run: |+          npm install --force https://cdn.cypress.io/extract-cloud-results/v1/extract-cloud-results.tgz+          node ./scripts/verifyUICoverageResults.js\n```\n\n.git-ci.yml\n\n```\nname: Run Cypress Testsimage: node:lateststages:  - testrun-cypress:  stage: test  secrets:    CYPRESS_RECORD_KEY:      vault: vault/cypressRecordKey  script:    - npm install    - npx cypress run --record+   - npm install --force https://cdn.cypress.io/extract-cloud-results/v1/extract-cloud-results.tgz+   - node ./scripts/verifyUICoverageResults.js\n```\n\n```\npipeline {  agent {    docker {      image 'cypress/base:22.15.0'    }  }  environment {    CYPRESS_PROJECT_ID: 'xxxx'    CYPRESS_RECORD_KEY = credentials('cypress-record-key')  }  stages {    stage('build and test') {      steps {        sh 'npm ci'        sh 'npx cypress run --record'      }    }+   stage('Verify UI Coverage Results') {+     steps {+       sh 'npm install --force https://cdn.cypress.io/extract-cloud-results/v1/extract-cloud-results.tgz'+       sh 'node ./scripts/verifyUICoverageResults.js'+     }+   }  }}\n```\n\n```\njobs:  - job: run_tests    pool:      vmImage: 'ubuntu-latest'    steps:      - task: NodeTool@0        inputs:          versionSpec: '20.x'          displayName: 'Install Node.js'      - script: npm i        displayName: 'Install npm dependencies'      - script: npx cypress run --record        displayName: 'Run Cypress tests'        env:          # avoid warnings about terminal          TERM: xterm          CYPRESS_RECORD_KEY: $(CYPRESS_RECORD_KEY)+     - script: |+           npm install --force https://cdn.cypress.io/extract-cloud-results/v1/extract-cloud-results.tgz+           node ./scripts/verifyUICoverageResults.js+       displayName: 'Verify UI Coverage Results'+       env:+         CYPRESS_PROJECT_ID: $(CYPRESS_PROJECT_ID)+         CYPRESS_RECORD_KEY: $(CYPRESS_RECORD_KEY)\n```\n\n```\nversion: 2.1jobs:  linux-test:    docker:      - image: cypress/base:22.15.0    working_directory: ~/repo    steps:      - checkout      - run: npm install      - run: npx run cypress:run --record+     - run: npm install --force https://cdn.cypress.io/extract-cloud-results/beta/v1/extract-cloud-results.tgz+     - run: node ./scripts/verifyUICoverageResults.jsworkflows:  version: 2  tests:    jobs:      - run-cypress\n```\n\nbuildspec.yaml\n\n```\nphases:  install:    runtime-versions:      nodejs: latest    commands:      # Set COMMIT_INFO variables to send Git specifics to Cypress Cloud when recording      # https://docs.cypress.io/app/continuous-integration/overview#Git-information      - export COMMIT_INFO_BRANCH=\"$(git rev-parse HEAD | xargs git name-rev |        cut -d' ' -f2 | sed 's/remotes\\/origin\\///g')\"      - export COMMIT_INFO_MESSAGE=\"$(git log -1 --pretty=%B)\"      - export COMMIT_INFO_EMAIL=\"$(git log -1 --pretty=%ae)\"      - export COMMIT_INFO_AUTHOR=\"$(git log -1 --pretty=%an)\"      - export COMMIT_INFO_SHA=\"$(git log -1 --pretty=%H)\"      - export COMMIT_INFO_REMOTE=\"$(git config --get remote.origin.url)\"      - npm ci  pre_build:    commands:      - npm run cypress:verify      - npm run cypress:info  build:    commands:      - CYPRESS_INTERNAL_ENV=staging CYPRESS_PROJECT_ID=[slug] npx cypress run --record --key [KEY]+  post_build:+    commands:+      - npm install --force https://cdn.cypress.io/extract-cloud-results/v1/extract-cloud-results.tgz+      - CYPRESS_INTERNAL_ENV=staging CYPRESS_PROJECT_ID=[slug] CYPRESS_RECORD_KEY=[KEY] node ./scripts/verifyUICoverageResults.js\n```\n\n.drone.yaml\n\n```\n  kind: pipeline  name: defaultenvironment:CYPRESS_PROJECT_ID: example_project_slugCYPRESS_RECORD_KEY:from_secret: example_record_key_secretsteps:- name: test  image: node:latest  commands:  - npm install  - npx cypress run --record* - name: validate* image: node:latest* commands:* - npm install --force https://cdn.cypress.io/extract-cloud-results/v1/extract-cloud-results.tgz* - node ./scripts/verifyUICoverageResults.js\n```\n\nbitbucket-pipelines.yml\n\n```\nimage: node:latestpipelines:  default:    - step:        name: Run Cypress tests        script:          - npm install          - npx cypress run --record+         - npm install --force https://cdn.cypress.io/extract-cloud-results/v1/extract-cloud-results.tgz+         - node ./scripts/verifyUICoverageResults.js\n```\n\npipeline.yml\n\n```\nsteps:  - label: \"Run Cypress tests\"    command:      - npm install      - npx cypress run --record+     - npm install --force https://cdn.cypress.io/extract-cloud-results/v1/extract-cloud-results.tgz+     - node ./scripts/verifyUICoverageResults.js\n```\n",
      "section": "ui-coverage",
      "anchors": [
        "2-add-to-ci-workflow"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 901
    },
    {
      "id": "ui-coverage/results-api#example-job-workflow-update",
      "doc_id": "ui-coverage/results-api",
      "heading": "Example Job Workflow Update:",
      "heading_level": 4,
      "content_markdown": "#### Example Job Workflow Update:\n\n*   GitHub Actions\n*   GitLab\n*   Jenkins\n*   Azure\n*   CircleCI\n*   AWS CodeBuild\n*   Drone\n*   Bitbucket\n*   Buildkite\n\ntest\\_cypress.yaml\n\n```\nname: My Workflowon: pushenv:  CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}jobs:  run-cypress:    runs-on: ubuntu-24.04    steps:      - name: Checkout        uses: actions/checkout@v6      - name: install        run: npm install      - name: Run        run: npx cypress run --record+     - name: Verify UI Coverage Results+       run: |+          npm install --force https://cdn.cypress.io/extract-cloud-results/v1/extract-cloud-results.tgz+          node ./scripts/verifyUICoverageResults.js\n```\n\n.git-ci.yml\n\n```\nname: Run Cypress Testsimage: node:lateststages:  - testrun-cypress:  stage: test  secrets:    CYPRESS_RECORD_KEY:      vault: vault/cypressRecordKey  script:    - npm install    - npx cypress run --record+   - npm install --force https://cdn.cypress.io/extract-cloud-results/v1/extract-cloud-results.tgz+   - node ./scripts/verifyUICoverageResults.js\n```\n\n```\npipeline {  agent {    docker {      image 'cypress/base:22.15.0'    }  }  environment {    CYPRESS_PROJECT_ID: 'xxxx'    CYPRESS_RECORD_KEY = credentials('cypress-record-key')  }  stages {    stage('build and test') {      steps {        sh 'npm ci'        sh 'npx cypress run --record'      }    }+   stage('Verify UI Coverage Results') {+     steps {+       sh 'npm install --force https://cdn.cypress.io/extract-cloud-results/v1/extract-cloud-results.tgz'+       sh 'node ./scripts/verifyUICoverageResults.js'+     }+   }  }}\n```\n\n```\njobs:  - job: run_tests    pool:      vmImage: 'ubuntu-latest'    steps:      - task: NodeTool@0        inputs:          versionSpec: '20.x'          displayName: 'Install Node.js'      - script: npm i        displayName: 'Install npm dependencies'      - script: npx cypress run --record        displayName: 'Run Cypress tests'        env:          # avoid warnings about terminal          TERM: xterm          CYPRESS_RECORD_KEY: $(CYPRESS_RECORD_KEY)+     - script: |+           npm install --force https://cdn.cypress.io/extract-cloud-results/v1/extract-cloud-results.tgz+           node ./scripts/verifyUICoverageResults.js+       displayName: 'Verify UI Coverage Results'+       env:+         CYPRESS_PROJECT_ID: $(CYPRESS_PROJECT_ID)+         CYPRESS_RECORD_KEY: $(CYPRESS_RECORD_KEY)\n```\n\n```\nversion: 2.1jobs:  linux-test:    docker:      - image: cypress/base:22.15.0    working_directory: ~/repo    steps:      - checkout      - run: npm install      - run: npx run cypress:run --record+     - run: npm install --force https://cdn.cypress.io/extract-cloud-results/beta/v1/extract-cloud-results.tgz+     - run: node ./scripts/verifyUICoverageResults.jsworkflows:  version: 2  tests:    jobs:      - run-cypress\n```\n\nbuildspec.yaml\n\n```\nphases:  install:    runtime-versions:      nodejs: latest    commands:      # Set COMMIT_INFO variables to send Git specifics to Cypress Cloud when recording      # https://docs.cypress.io/app/continuous-integration/overview#Git-information      - export COMMIT_INFO_BRANCH=\"$(git rev-parse HEAD | xargs git name-rev |        cut -d' ' -f2 | sed 's/remotes\\/origin\\///g')\"      - export COMMIT_INFO_MESSAGE=\"$(git log -1 --pretty=%B)\"      - export COMMIT_INFO_EMAIL=\"$(git log -1 --pretty=%ae)\"      - export COMMIT_INFO_AUTHOR=\"$(git log -1 --pretty=%an)\"      - export COMMIT_INFO_SHA=\"$(git log -1 --pretty=%H)\"      - export COMMIT_INFO_REMOTE=\"$(git config --get remote.origin.url)\"      - npm ci  pre_build:    commands:      - npm run cypress:verify      - npm run cypress:info  build:    commands:      - CYPRESS_INTERNAL_ENV=staging CYPRESS_PROJECT_ID=[slug] npx cypress run --record --key [KEY]+  post_build:+    commands:+      - npm install --force https://cdn.cypress.io/extract-cloud-results/v1/extract-cloud-results.tgz+      - CYPRESS_INTERNAL_ENV=staging CYPRESS_PROJECT_ID=[slug] CYPRESS_RECORD_KEY=[KEY] node ./scripts/verifyUICoverageResults.js\n```\n\n.drone.yaml\n\n```\n  kind: pipeline  name: defaultenvironment:CYPRESS_PROJECT_ID: example_project_slugCYPRESS_RECORD_KEY:from_secret: example_record_key_secretsteps:- name: test  image: node:latest  commands:  - npm install  - npx cypress run --record* - name: validate* image: node:latest* commands:* - npm install --force https://cdn.cypress.io/extract-cloud-results/v1/extract-cloud-results.tgz* - node ./scripts/verifyUICoverageResults.js\n```\n\nbitbucket-pipelines.yml\n\n```\nimage: node:latestpipelines:  default:    - step:        name: Run Cypress tests        script:          - npm install          - npx cypress run --record+         - npm install --force https://cdn.cypress.io/extract-cloud-results/v1/extract-cloud-results.tgz+         - node ./scripts/verifyUICoverageResults.js\n```\n\npipeline.yml\n\n```\nsteps:  - label: \"Run Cypress tests\"    command:      - npm install      - npx cypress run --record+     - npm install --force https://cdn.cypress.io/extract-cloud-results/v1/extract-cloud-results.tgz+     - node ./scripts/verifyUICoverageResults.js\n```\n",
      "section": "ui-coverage",
      "anchors": [
        "example-job-workflow-update"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 623
    },
    {
      "id": "ui-coverage/results-api#required-ci-environment-variables",
      "doc_id": "ui-coverage/results-api",
      "heading": "Required CI environment variables",
      "heading_level": 2,
      "content_markdown": "## Required CI environment variables\n\nThe `@cypress/extract-cloud-results` helper cross-references some environment variables from where it is executed with ones that were present when a Cypress Cloud run was recorded. This allows for automatically detecting the correct Cloud run when the Results API is invoked from the same CI context as a given run (as is the case in the above examples).\n\nFor more complex setups, or for local iteration on your Results API handler code, it can be useful to know what variables Cypress is looking for so that you can make sure they are passed through where they are needed.\n\nLikewise, if you want to use the Results API locally to pull the data for a specific run (within the last 7 days), you can set these variables locally to match what was present in CI.\n",
      "section": "ui-coverage",
      "anchors": [
        "required-ci-environment-variables"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 183
    },
    {
      "id": "ui-coverage/results-api#local-development-example",
      "doc_id": "ui-coverage/results-api",
      "heading": "Local development example",
      "heading_level": 2,
      "content_markdown": "## Local development example\n\nIf you executed a run in GitHub Actions and it was recorded to Cypress Cloud, you would set these 4 environment variables to replicate the context of that run locally and execute your local handler script. This is a great way to iterate on your script and verify everything is working as expected, without having to integrate anything in CI. It's also useful for debugging.\n\n```\nCYPRESS_PROJECT_ID=AAACYPRESS_RECORD_KEY=BBBGITHUB_ACTIONS=trueGITHUB_RUN_ID=111GITHUB_RUN_ATTEMPT=0node verifyAccessibilityResults.js\n```\n\nThe Results API will then look for the Cypress Cloud run that matches this run ID. If there is more than one Cypress Cloud run found for that GitHub Actions Run, you can pass run tags to narrow down to one run's report.\n",
      "section": "ui-coverage",
      "anchors": [
        "local-development-example"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 155
    },
    {
      "id": "ui-coverage/results-api#supported-ci-provider-overview",
      "doc_id": "ui-coverage/results-api",
      "heading": "Supported CI Provider Overview",
      "heading_level": 2,
      "content_markdown": "## Supported CI Provider Overview\n\nEach CI provider has a unique combination of components, patterns, and environment variables that must be interpreted by this module.\n\n### GitHub Actions\n\nReference: [https://docs.github.com/en/actions/learn-github-actions/understanding-github-actions](https://docs.github.com/en/actions/learn-github-actions/understanding-github-actions)\n\n#### Essential environment variables\n\n*   `GITHUB_ACTIONS` - Presence identifies the environment as a GitHub Actions environment.\n*   `GITHUB_RUN_ID` - Value uniquely identifies a GitHub Actions workflow instance. Value does not change as jobs in the workflow are re-executed.\n*   `GITHUB_RUN_ATTEMPT` - Value identifies the workflow instance's attempt index. Value is incremented each time jobs are re-executed.\n\nFull environment variable reference: [https://docs.github.com/en/actions/learn-github-actions/variables#default-environment-variables](https://docs.github.com/en/actions/learn-github-actions/variables#default-environment-variables)\n\n#### Prerequisites\n\n1.  The run to validate and this module's validation script are being executed within the same workflow.\n2.  The module script is always executed _after_ the run to validate has been created. This can be achieved by either:\n    1.  Executing the module script in a separate job that is dependent upon the job that records the run (using the `needs: [job-name]` option in the config), or\n    2.  Executing the module script in serial with the cypress recording in the same job.\n\n### GitLab Pipelines\n\nReference: [https://docs.gitlab.com/ee/ci/pipelines/](https://docs.gitlab.com/ee/ci/pipelines/)\n\n#### Essential environment variables\n\n*   `GITLAB_CI` - Presence identifies the environment as a GitLab CI environment\n*   `CI_PIPELINE_ID` - Value uniquely identifies a GitLab pipeline workflow. This value does not change as jobs in the pipeline are retried.\n*   `CI_JOB_NAME` - Value uniquely identifies a single job name within a pipeline. Ex. `run-e2e`\n*   `CI_JOB_ID` - Value uniquely identifies an execution instance of a job. This value will change each time a job is executed/re-executed.\n\nFull environment variable reference: [https://docs.gitlab.com/ee/ci/variables/predefined\\_variables.html](https://docs.gitlab.com/ee/ci/variables/predefined_variables.html)\n\n#### Prerequisites\n\n1.  The run to validate and this module's validation script are being executed within the same pipeline.\n2.  The module script is always executed _after_ the run to validate has been created. This can be achieved by:\n    1.  Executing the module script in a separate job that is dependent upon the job that records the run (using the `needs: [job-name]` option in the config), or\n    2.  Executing the module script in a separate job that is executed in a lower stage than the job that records the Cypress run, or\n    3.  Executing the module script in serial with the cypress recording in the same job.\n\n### Jenkins\n\nReference: [https://www.jenkins.io/doc/](https://www.jenkins.io/doc/)\n\nJenkins is heavily customizable through the usage of plugins, which limits the amount of assumptions we can make about available environment variables and overall behavior.\n\nWe have implemented Jenkins support within this module using the broadest set of available default values. For the purposes of this documentation, though, we will discuss terms related to Jenkins Pipeline support: [https://www.jenkins.io/doc/book/pipeline/getting-started/](https://www.jenkins.io/doc/book/pipeline/getting-started/)\n\n#### Essential terms\n\n#### Essential environment variables\n\n*   `JENKINS_HOME` - Presence identifies the environment as a Jenkins environment\n*   `BUILD_URL` - Value uniquely identifies a Jenkins job execution, including name and id characteristics.\n\nFull environment variable reference: [https://www.jenkins.io/doc/book/pipeline/jenkinsfile/#using-environment-variables](https://www.jenkins.io/doc/book/pipeline/jenkinsfile/#using-environment-variables)\n\n#### Prerequisites\n\n1.  The run to validate and this module's validation script are being executed within the same job.\n2.  The module script is always executed _after_ the run to validate has been created. This can be achieved by executing the module script in serial with the cypress recording in the same job.\n\n### Azure\n\nReference: [https://learn.microsoft.com/en-us/azure/devops/pipelines/get-started/key-pipelines-concepts?view=azure-devops](https://learn.microsoft.com/en-us/azure/devops/pipelines/get-started/key-pipelines-concepts?view=azure-devops)\n\n> Note: Cypress v13.13.1 is the earliest Cypress release that records the environment variables necessary for this module to identify runs in an Azure environment. Previous Cypress versions are not supported in Azure pipelines.\n\n#### Essential environment variables\n\n*   `TF_BUILD` and `AZURE_HTTP_USER_AGENT` - Combined presence identifies the environment as a Azure pipeline environment.\n*   `SYSTEM_PLANID` - Value uniquely identifies a pipeline run. Value does not change as jobs within the pipeline are retried from failure.\n*   `SYSTEM_JOBID` - Value uniquely identifies a job execution. Value changes each time a job is retried from failure, in conjunction with the `SYSTEM_JOBATTEMPT` being incremented.\n*   `SYSTEM_JOBATTEMPT` - Value identifies the pipelines shared attempt index. Value is incremented when jobs are retried from failure.\n\nFull environment variable reference: [https://learn.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml](https://learn.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml)\n\n#### Prerequisites\n\n1.  The run to validate and this module's validation script are being executed within the same pipeline run (i.e. they share a `SYSTEM_PLANID` value).\n2.  The module script is always executed _after_ the run to validate has been created. This can be achieved by either:\n    1.  Executing the module script in a separate job that is dependent upon the job that records the run (using the `dependsOn: [job-name]` option in the config), or\n    2.  Executing the module script in serial with the Cypress recording in the same job.\n\n### CircleCI\n\nReference: [https://circleci.com/docs/about-circleci/](https://circleci.com/docs/about-circleci/)\n\n> Note: Cypress v13.13.1 is the earliest Cypress release that records the environment variables necessary for this module to identify runs in an CircleCI environment. Previous Cypress versions are not supported in CircleCI pipelines.\n\n#### Essential environment variables\n\n*   `CIRCLECI` - Presence identifies the environment as a CircleCI environment\n*   `CIRCLE_PIPELINE_ID` - Value uniquely identifies a CircleCI pipeline, created on push or manually triggered through the UI. This value does not change as workflows within the pipeline are re-executed.\n*   `CIRCLE_WORKFLOW_ID` - Value uniquely identifies an instance of a workflow's execution within a pipeline. This value will be updated upon each workflow execution; in other words, retrying a workflow from failure from the Circle UI will create a new workflow with a new `CIRCLE_WORKFLOW_ID` value available to the jobs executed within it.\n*   `CIRCLE_WORKFLOW_JOB_ID` - Value uniquely identifies an execution instance of a named job within a workflow instance.\n\nFull environment variable reference: [https://docs.gitlab.com/ee/ci/variables/predefined\\_variables.html](https://docs.gitlab.com/ee/ci/variables/predefined_variables.html)\n\n#### Prerequisites\n\n1.  The run to validate and this module's validation script are being executed within the same pipeline **and** workflow.\n2.  The module script is always executed _after_ the run to validate has been created. This can be achieved by:\n    1.  Executing the module script in a separate job that is dependent upon the job that records the run (using the `requires: [job-name]` option in the config), or\n    2.  Executing the module script in serial with the cypress recording in the same job.\n\n### AWS CodeBuild\n\nReference: [https://docs.aws.amazon.com/codebuild/](https://docs.aws.amazon.com/codebuild/)\n\n#### Essential environment variables\n\n*   `CODEBUILD_BUILD_ID` - Presence identifies the environment as an AWS CodeBuild environment. Value uniquely identifies a build.\n\nFull environment variable reference: [https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html)\n\nPrerequisites\n\n1.  The run to validate and this module's validation script are being executed within the same build.\n2.  The module script is always executed _after_ the run to validate has been created. This can be achieved by executing the module script in serial with the cypress recording in the same build.\n\n### Drone\n\nReference: [https://docs.drone.io/pipeline/overview/](https://docs.drone.io/pipeline/overview/)\n\n#### Essential environment variables\n\n*   `DRONE` - Presence identifies the environment as an Drone environment.\n*   `DRONE_BUILD_NUMBER` - Value uniquely identifies a Drone build.\n\nFull environment variable reference: [https://docs.drone.io/pipeline/environment/reference/](https://docs.drone.io/pipeline/environment/reference/)\n\n#### Prerequisites\n\n1.  The run to validate and this module's validation script are being executed within the same build.\n2.  The module script is always executed _after_ the run to validate has been created. This can be achieved by executing the module script in serial with the cypress recording in the same build.\n\n### Bitbucket\n\nReference: [https://support.atlassian.com/bitbucket-cloud/docs/](https://support.atlassian.com/bitbucket-cloud/docs/)\n\n#### Essential environment variables\n\n*   `BITBUCKET_BUILD_NUMBER` - Presence identifies the environment as a Bitbucket environment. Value uniquely identifies a build.\n*   `BITBUCKET_STEP_RUN_NUMBER` - Value indicates a build step execution index and increments when a step is retried. Initial value of 1.\n\nFull environment variable reference: [https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets/](https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets/)\n\n#### Prerequisites\n\n1.  The run to validate and this module's validation script are being executed within the same build.\n2.  The module script is always executed _after_ the run to validate has been created. This can be achieved by executing the module script in serial with the cypress recording in the same build.\n\n### Buildkite\n\nReference: [https://buildkite.com/docs](https://buildkite.com/docs)\n\n#### Essential environment variables\n\n*   `BUILDKITE` - Presence identifies the environment as a Buildkite environment.\n*   `BUILDKITE_BUILD_ID` - Value uniquely identifies a build. This value does not change across different jobs within the same build.\n*   `BUILDKITE_JOB_ID` - Value uniquely identifies a job execution. Each job in a build has a unique job ID.\n*   `BUILDKITE_RETRY_COUNT` - Value indicates the retry attempt for a job. Default value of 0.\n\nFull environment variable reference: [https://buildkite.com/docs/pipelines/environment-variables](https://buildkite.com/docs/pipelines/environment-variables)\n\n#### Prerequisites\n\n1.  The run to validate and this module's validation script are being executed within the same build.\n2.  The module script is always executed _after_ the run to validate has been created. This can be achieved by executing the module script in serial with the cypress recording in the same build.\n\nIn order to iterate on your verification script and see everything working without putting code into your CI environment, it can be useful to simulate the CI context for a specific Cypress run locally. This can save a lot of time when getting started.\n",
      "section": "ui-coverage",
      "anchors": [
        "supported-ci-provider-overview"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 1903
    },
    {
      "id": "ui-coverage/results-api#github-actions",
      "doc_id": "ui-coverage/results-api",
      "heading": "GitHub Actions",
      "heading_level": 3,
      "content_markdown": "### GitHub Actions\n\nReference: [https://docs.github.com/en/actions/learn-github-actions/understanding-github-actions](https://docs.github.com/en/actions/learn-github-actions/understanding-github-actions)\n\n#### Essential environment variables\n\n*   `GITHUB_ACTIONS` - Presence identifies the environment as a GitHub Actions environment.\n*   `GITHUB_RUN_ID` - Value uniquely identifies a GitHub Actions workflow instance. Value does not change as jobs in the workflow are re-executed.\n*   `GITHUB_RUN_ATTEMPT` - Value identifies the workflow instance's attempt index. Value is incremented each time jobs are re-executed.\n\nFull environment variable reference: [https://docs.github.com/en/actions/learn-github-actions/variables#default-environment-variables](https://docs.github.com/en/actions/learn-github-actions/variables#default-environment-variables)\n\n#### Prerequisites\n\n1.  The run to validate and this module's validation script are being executed within the same workflow.\n2.  The module script is always executed _after_ the run to validate has been created. This can be achieved by either:\n    1.  Executing the module script in a separate job that is dependent upon the job that records the run (using the `needs: [job-name]` option in the config), or\n    2.  Executing the module script in serial with the cypress recording in the same job.\n",
      "section": "ui-coverage",
      "anchors": [
        "github-actions"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 199
    },
    {
      "id": "ui-coverage/results-api#essential-environment-variables",
      "doc_id": "ui-coverage/results-api",
      "heading": "Essential environment variables",
      "heading_level": 4,
      "content_markdown": "#### Essential environment variables\n\n*   `GITHUB_ACTIONS` - Presence identifies the environment as a GitHub Actions environment.\n*   `GITHUB_RUN_ID` - Value uniquely identifies a GitHub Actions workflow instance. Value does not change as jobs in the workflow are re-executed.\n*   `GITHUB_RUN_ATTEMPT` - Value identifies the workflow instance's attempt index. Value is incremented each time jobs are re-executed.\n\nFull environment variable reference: [https://docs.github.com/en/actions/learn-github-actions/variables#default-environment-variables](https://docs.github.com/en/actions/learn-github-actions/variables#default-environment-variables)\n",
      "section": "ui-coverage",
      "anchors": [
        "essential-environment-variables"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 81
    },
    {
      "id": "ui-coverage/results-api#prerequisites",
      "doc_id": "ui-coverage/results-api",
      "heading": "Prerequisites",
      "heading_level": 4,
      "content_markdown": "#### Prerequisites\n\n1.  The run to validate and this module's validation script are being executed within the same workflow.\n2.  The module script is always executed _after_ the run to validate has been created. This can be achieved by either:\n    1.  Executing the module script in a separate job that is dependent upon the job that records the run (using the `needs: [job-name]` option in the config), or\n    2.  Executing the module script in serial with the cypress recording in the same job.\n",
      "section": "ui-coverage",
      "anchors": [
        "prerequisites"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 111
    },
    {
      "id": "ui-coverage/results-api#gitlab-pipelines",
      "doc_id": "ui-coverage/results-api",
      "heading": "GitLab Pipelines",
      "heading_level": 3,
      "content_markdown": "### GitLab Pipelines\n\nReference: [https://docs.gitlab.com/ee/ci/pipelines/](https://docs.gitlab.com/ee/ci/pipelines/)\n\n#### Essential environment variables\n\n*   `GITLAB_CI` - Presence identifies the environment as a GitLab CI environment\n*   `CI_PIPELINE_ID` - Value uniquely identifies a GitLab pipeline workflow. This value does not change as jobs in the pipeline are retried.\n*   `CI_JOB_NAME` - Value uniquely identifies a single job name within a pipeline. Ex. `run-e2e`\n*   `CI_JOB_ID` - Value uniquely identifies an execution instance of a job. This value will change each time a job is executed/re-executed.\n\nFull environment variable reference: [https://docs.gitlab.com/ee/ci/variables/predefined\\_variables.html](https://docs.gitlab.com/ee/ci/variables/predefined_variables.html)\n\n#### Prerequisites\n\n1.  The run to validate and this module's validation script are being executed within the same pipeline.\n2.  The module script is always executed _after_ the run to validate has been created. This can be achieved by:\n    1.  Executing the module script in a separate job that is dependent upon the job that records the run (using the `needs: [job-name]` option in the config), or\n    2.  Executing the module script in a separate job that is executed in a lower stage than the job that records the Cypress run, or\n    3.  Executing the module script in serial with the cypress recording in the same job.\n",
      "section": "ui-coverage",
      "anchors": [
        "gitlab-pipelines"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 256
    },
    {
      "id": "ui-coverage/results-api#essential-environment-variables",
      "doc_id": "ui-coverage/results-api",
      "heading": "Essential environment variables",
      "heading_level": 4,
      "content_markdown": "#### Essential environment variables\n\n*   `GITLAB_CI` - Presence identifies the environment as a GitLab CI environment\n*   `CI_PIPELINE_ID` - Value uniquely identifies a GitLab pipeline workflow. This value does not change as jobs in the pipeline are retried.\n*   `CI_JOB_NAME` - Value uniquely identifies a single job name within a pipeline. Ex. `run-e2e`\n*   `CI_JOB_ID` - Value uniquely identifies an execution instance of a job. This value will change each time a job is executed/re-executed.\n\nFull environment variable reference: [https://docs.gitlab.com/ee/ci/variables/predefined\\_variables.html](https://docs.gitlab.com/ee/ci/variables/predefined_variables.html)\n",
      "section": "ui-coverage",
      "anchors": [
        "essential-environment-variables"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 107
    },
    {
      "id": "ui-coverage/results-api#prerequisites",
      "doc_id": "ui-coverage/results-api",
      "heading": "Prerequisites",
      "heading_level": 4,
      "content_markdown": "#### Prerequisites\n\n1.  The run to validate and this module's validation script are being executed within the same pipeline.\n2.  The module script is always executed _after_ the run to validate has been created. This can be achieved by:\n    1.  Executing the module script in a separate job that is dependent upon the job that records the run (using the `needs: [job-name]` option in the config), or\n    2.  Executing the module script in a separate job that is executed in a lower stage than the job that records the Cypress run, or\n    3.  Executing the module script in serial with the cypress recording in the same job.\n",
      "section": "ui-coverage",
      "anchors": [
        "prerequisites"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 143
    },
    {
      "id": "ui-coverage/results-api#jenkins",
      "doc_id": "ui-coverage/results-api",
      "heading": "Jenkins",
      "heading_level": 3,
      "content_markdown": "### Jenkins\n\nReference: [https://www.jenkins.io/doc/](https://www.jenkins.io/doc/)\n\nJenkins is heavily customizable through the usage of plugins, which limits the amount of assumptions we can make about available environment variables and overall behavior.\n\nWe have implemented Jenkins support within this module using the broadest set of available default values. For the purposes of this documentation, though, we will discuss terms related to Jenkins Pipeline support: [https://www.jenkins.io/doc/book/pipeline/getting-started/](https://www.jenkins.io/doc/book/pipeline/getting-started/)\n\n#### Essential terms\n\n#### Essential environment variables\n\n*   `JENKINS_HOME` - Presence identifies the environment as a Jenkins environment\n*   `BUILD_URL` - Value uniquely identifies a Jenkins job execution, including name and id characteristics.\n\nFull environment variable reference: [https://www.jenkins.io/doc/book/pipeline/jenkinsfile/#using-environment-variables](https://www.jenkins.io/doc/book/pipeline/jenkinsfile/#using-environment-variables)\n\n#### Prerequisites\n\n1.  The run to validate and this module's validation script are being executed within the same job.\n2.  The module script is always executed _after_ the run to validate has been created. This can be achieved by executing the module script in serial with the cypress recording in the same job.\n",
      "section": "ui-coverage",
      "anchors": [
        "jenkins"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 204
    },
    {
      "id": "ui-coverage/results-api#essential-environment-variables",
      "doc_id": "ui-coverage/results-api",
      "heading": "Essential environment variables",
      "heading_level": 4,
      "content_markdown": "#### Essential environment variables\n\n*   `JENKINS_HOME` - Presence identifies the environment as a Jenkins environment\n*   `BUILD_URL` - Value uniquely identifies a Jenkins job execution, including name and id characteristics.\n\nFull environment variable reference: [https://www.jenkins.io/doc/book/pipeline/jenkinsfile/#using-environment-variables](https://www.jenkins.io/doc/book/pipeline/jenkinsfile/#using-environment-variables)\n",
      "section": "ui-coverage",
      "anchors": [
        "essential-environment-variables"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 47
    },
    {
      "id": "ui-coverage/results-api#prerequisites",
      "doc_id": "ui-coverage/results-api",
      "heading": "Prerequisites",
      "heading_level": 4,
      "content_markdown": "#### Prerequisites\n\n1.  The run to validate and this module's validation script are being executed within the same job.\n2.  The module script is always executed _after_ the run to validate has been created. This can be achieved by executing the module script in serial with the cypress recording in the same job.\n",
      "section": "ui-coverage",
      "anchors": [
        "prerequisites"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 71
    },
    {
      "id": "ui-coverage/results-api#azure",
      "doc_id": "ui-coverage/results-api",
      "heading": "Azure",
      "heading_level": 3,
      "content_markdown": "### Azure\n\nReference: [https://learn.microsoft.com/en-us/azure/devops/pipelines/get-started/key-pipelines-concepts?view=azure-devops](https://learn.microsoft.com/en-us/azure/devops/pipelines/get-started/key-pipelines-concepts?view=azure-devops)\n\n> Note: Cypress v13.13.1 is the earliest Cypress release that records the environment variables necessary for this module to identify runs in an Azure environment. Previous Cypress versions are not supported in Azure pipelines.\n\n#### Essential environment variables\n\n*   `TF_BUILD` and `AZURE_HTTP_USER_AGENT` - Combined presence identifies the environment as a Azure pipeline environment.\n*   `SYSTEM_PLANID` - Value uniquely identifies a pipeline run. Value does not change as jobs within the pipeline are retried from failure.\n*   `SYSTEM_JOBID` - Value uniquely identifies a job execution. Value changes each time a job is retried from failure, in conjunction with the `SYSTEM_JOBATTEMPT` being incremented.\n*   `SYSTEM_JOBATTEMPT` - Value identifies the pipelines shared attempt index. Value is incremented when jobs are retried from failure.\n\nFull environment variable reference: [https://learn.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml](https://learn.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml)\n\n#### Prerequisites\n\n1.  The run to validate and this module's validation script are being executed within the same pipeline run (i.e. they share a `SYSTEM_PLANID` value).\n2.  The module script is always executed _after_ the run to validate has been created. This can be achieved by either:\n    1.  Executing the module script in a separate job that is dependent upon the job that records the run (using the `dependsOn: [job-name]` option in the config), or\n    2.  Executing the module script in serial with the Cypress recording in the same job.\n",
      "section": "ui-coverage",
      "anchors": [
        "azure"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 292
    },
    {
      "id": "ui-coverage/results-api#essential-environment-variables",
      "doc_id": "ui-coverage/results-api",
      "heading": "Essential environment variables",
      "heading_level": 4,
      "content_markdown": "#### Essential environment variables\n\n*   `TF_BUILD` and `AZURE_HTTP_USER_AGENT` - Combined presence identifies the environment as a Azure pipeline environment.\n*   `SYSTEM_PLANID` - Value uniquely identifies a pipeline run. Value does not change as jobs within the pipeline are retried from failure.\n*   `SYSTEM_JOBID` - Value uniquely identifies a job execution. Value changes each time a job is retried from failure, in conjunction with the `SYSTEM_JOBATTEMPT` being incremented.\n*   `SYSTEM_JOBATTEMPT` - Value identifies the pipelines shared attempt index. Value is incremented when jobs are retried from failure.\n\nFull environment variable reference: [https://learn.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml](https://learn.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml)\n",
      "section": "ui-coverage",
      "anchors": [
        "essential-environment-variables"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 121
    },
    {
      "id": "ui-coverage/results-api#prerequisites",
      "doc_id": "ui-coverage/results-api",
      "heading": "Prerequisites",
      "heading_level": 4,
      "content_markdown": "#### Prerequisites\n\n1.  The run to validate and this module's validation script are being executed within the same pipeline run (i.e. they share a `SYSTEM_PLANID` value).\n2.  The module script is always executed _after_ the run to validate has been created. This can be achieved by either:\n    1.  Executing the module script in a separate job that is dependent upon the job that records the run (using the `dependsOn: [job-name]` option in the config), or\n    2.  Executing the module script in serial with the Cypress recording in the same job.\n",
      "section": "ui-coverage",
      "anchors": [
        "prerequisites"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 120
    },
    {
      "id": "ui-coverage/results-api#circleci",
      "doc_id": "ui-coverage/results-api",
      "heading": "CircleCI",
      "heading_level": 3,
      "content_markdown": "### CircleCI\n\nReference: [https://circleci.com/docs/about-circleci/](https://circleci.com/docs/about-circleci/)\n\n> Note: Cypress v13.13.1 is the earliest Cypress release that records the environment variables necessary for this module to identify runs in an CircleCI environment. Previous Cypress versions are not supported in CircleCI pipelines.\n\n#### Essential environment variables\n\n*   `CIRCLECI` - Presence identifies the environment as a CircleCI environment\n*   `CIRCLE_PIPELINE_ID` - Value uniquely identifies a CircleCI pipeline, created on push or manually triggered through the UI. This value does not change as workflows within the pipeline are re-executed.\n*   `CIRCLE_WORKFLOW_ID` - Value uniquely identifies an instance of a workflow's execution within a pipeline. This value will be updated upon each workflow execution; in other words, retrying a workflow from failure from the Circle UI will create a new workflow with a new `CIRCLE_WORKFLOW_ID` value available to the jobs executed within it.\n*   `CIRCLE_WORKFLOW_JOB_ID` - Value uniquely identifies an execution instance of a named job within a workflow instance.\n\nFull environment variable reference: [https://docs.gitlab.com/ee/ci/variables/predefined\\_variables.html](https://docs.gitlab.com/ee/ci/variables/predefined_variables.html)\n\n#### Prerequisites\n\n1.  The run to validate and this module's validation script are being executed within the same pipeline **and** workflow.\n2.  The module script is always executed _after_ the run to validate has been created. This can be achieved by:\n    1.  Executing the module script in a separate job that is dependent upon the job that records the run (using the `requires: [job-name]` option in the config), or\n    2.  Executing the module script in serial with the cypress recording in the same job.\n",
      "section": "ui-coverage",
      "anchors": [
        "circleci"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 323
    },
    {
      "id": "ui-coverage/results-api#essential-environment-variables",
      "doc_id": "ui-coverage/results-api",
      "heading": "Essential environment variables",
      "heading_level": 4,
      "content_markdown": "#### Essential environment variables\n\n*   `CIRCLECI` - Presence identifies the environment as a CircleCI environment\n*   `CIRCLE_PIPELINE_ID` - Value uniquely identifies a CircleCI pipeline, created on push or manually triggered through the UI. This value does not change as workflows within the pipeline are re-executed.\n*   `CIRCLE_WORKFLOW_ID` - Value uniquely identifies an instance of a workflow's execution within a pipeline. This value will be updated upon each workflow execution; in other words, retrying a workflow from failure from the Circle UI will create a new workflow with a new `CIRCLE_WORKFLOW_ID` value available to the jobs executed within it.\n*   `CIRCLE_WORKFLOW_JOB_ID` - Value uniquely identifies an execution instance of a named job within a workflow instance.\n\nFull environment variable reference: [https://docs.gitlab.com/ee/ci/variables/predefined\\_variables.html](https://docs.gitlab.com/ee/ci/variables/predefined_variables.html)\n",
      "section": "ui-coverage",
      "anchors": [
        "essential-environment-variables"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 160
    },
    {
      "id": "ui-coverage/results-api#prerequisites",
      "doc_id": "ui-coverage/results-api",
      "heading": "Prerequisites",
      "heading_level": 4,
      "content_markdown": "#### Prerequisites\n\n1.  The run to validate and this module's validation script are being executed within the same pipeline **and** workflow.\n2.  The module script is always executed _after_ the run to validate has been created. This can be achieved by:\n    1.  Executing the module script in a separate job that is dependent upon the job that records the run (using the `requires: [job-name]` option in the config), or\n    2.  Executing the module script in serial with the cypress recording in the same job.\n",
      "section": "ui-coverage",
      "anchors": [
        "prerequisites"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 112
    },
    {
      "id": "ui-coverage/results-api#aws-codebuild",
      "doc_id": "ui-coverage/results-api",
      "heading": "AWS CodeBuild",
      "heading_level": 3,
      "content_markdown": "### AWS CodeBuild\n\nReference: [https://docs.aws.amazon.com/codebuild/](https://docs.aws.amazon.com/codebuild/)\n\n#### Essential environment variables\n\n*   `CODEBUILD_BUILD_ID` - Presence identifies the environment as an AWS CodeBuild environment. Value uniquely identifies a build.\n\nFull environment variable reference: [https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html)\n\nPrerequisites\n\n1.  The run to validate and this module's validation script are being executed within the same build.\n2.  The module script is always executed _after_ the run to validate has been created. This can be achieved by executing the module script in serial with the cypress recording in the same build.\n",
      "section": "ui-coverage",
      "anchors": [
        "aws-codebuild"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 111
    },
    {
      "id": "ui-coverage/results-api#essential-environment-variables",
      "doc_id": "ui-coverage/results-api",
      "heading": "Essential environment variables",
      "heading_level": 4,
      "content_markdown": "#### Essential environment variables\n\n*   `CODEBUILD_BUILD_ID` - Presence identifies the environment as an AWS CodeBuild environment. Value uniquely identifies a build.\n\nFull environment variable reference: [https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html)\n\nPrerequisites\n\n1.  The run to validate and this module's validation script are being executed within the same build.\n2.  The module script is always executed _after_ the run to validate has been created. This can be achieved by executing the module script in serial with the cypress recording in the same build.\n",
      "section": "ui-coverage",
      "anchors": [
        "essential-environment-variables"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 104
    },
    {
      "id": "ui-coverage/results-api#drone",
      "doc_id": "ui-coverage/results-api",
      "heading": "Drone",
      "heading_level": 3,
      "content_markdown": "### Drone\n\nReference: [https://docs.drone.io/pipeline/overview/](https://docs.drone.io/pipeline/overview/)\n\n#### Essential environment variables\n\n*   `DRONE` - Presence identifies the environment as an Drone environment.\n*   `DRONE_BUILD_NUMBER` - Value uniquely identifies a Drone build.\n\nFull environment variable reference: [https://docs.drone.io/pipeline/environment/reference/](https://docs.drone.io/pipeline/environment/reference/)\n\n#### Prerequisites\n\n1.  The run to validate and this module's validation script are being executed within the same build.\n2.  The module script is always executed _after_ the run to validate has been created. This can be achieved by executing the module script in serial with the cypress recording in the same build.\n",
      "section": "ui-coverage",
      "anchors": [
        "drone"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 115
    },
    {
      "id": "ui-coverage/results-api#prerequisites",
      "doc_id": "ui-coverage/results-api",
      "heading": "Prerequisites",
      "heading_level": 4,
      "content_markdown": "#### Prerequisites\n\n1.  The run to validate and this module's validation script are being executed within the same build.\n2.  The module script is always executed _after_ the run to validate has been created. This can be achieved by executing the module script in serial with the cypress recording in the same build.\n",
      "section": "ui-coverage",
      "anchors": [
        "prerequisites"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 71
    },
    {
      "id": "ui-coverage/results-api#bitbucket",
      "doc_id": "ui-coverage/results-api",
      "heading": "Bitbucket",
      "heading_level": 3,
      "content_markdown": "### Bitbucket\n\nReference: [https://support.atlassian.com/bitbucket-cloud/docs/](https://support.atlassian.com/bitbucket-cloud/docs/)\n\n#### Essential environment variables\n\n*   `BITBUCKET_BUILD_NUMBER` - Presence identifies the environment as a Bitbucket environment. Value uniquely identifies a build.\n*   `BITBUCKET_STEP_RUN_NUMBER` - Value indicates a build step execution index and increments when a step is retried. Initial value of 1.\n\nFull environment variable reference: [https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets/](https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets/)\n\n#### Prerequisites\n\n1.  The run to validate and this module's validation script are being executed within the same build.\n2.  The module script is always executed _after_ the run to validate has been created. This can be achieved by executing the module script in serial with the cypress recording in the same build.\n",
      "section": "ui-coverage",
      "anchors": [
        "bitbucket"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 137
    },
    {
      "id": "ui-coverage/results-api#essential-environment-variables",
      "doc_id": "ui-coverage/results-api",
      "heading": "Essential environment variables",
      "heading_level": 4,
      "content_markdown": "#### Essential environment variables\n\n*   `BITBUCKET_BUILD_NUMBER` - Presence identifies the environment as a Bitbucket environment. Value uniquely identifies a build.\n*   `BITBUCKET_STEP_RUN_NUMBER` - Value indicates a build step execution index and increments when a step is retried. Initial value of 1.\n\nFull environment variable reference: [https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets/](https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets/)\n",
      "section": "ui-coverage",
      "anchors": [
        "essential-environment-variables"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 61
    },
    {
      "id": "ui-coverage/results-api#prerequisites",
      "doc_id": "ui-coverage/results-api",
      "heading": "Prerequisites",
      "heading_level": 4,
      "content_markdown": "#### Prerequisites\n\n1.  The run to validate and this module's validation script are being executed within the same build.\n2.  The module script is always executed _after_ the run to validate has been created. This can be achieved by executing the module script in serial with the cypress recording in the same build.\n",
      "section": "ui-coverage",
      "anchors": [
        "prerequisites"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 71
    },
    {
      "id": "ui-coverage/results-api#buildkite",
      "doc_id": "ui-coverage/results-api",
      "heading": "Buildkite",
      "heading_level": 3,
      "content_markdown": "### Buildkite\n\nReference: [https://buildkite.com/docs](https://buildkite.com/docs)\n\n#### Essential environment variables\n\n*   `BUILDKITE` - Presence identifies the environment as a Buildkite environment.\n*   `BUILDKITE_BUILD_ID` - Value uniquely identifies a build. This value does not change across different jobs within the same build.\n*   `BUILDKITE_JOB_ID` - Value uniquely identifies a job execution. Each job in a build has a unique job ID.\n*   `BUILDKITE_RETRY_COUNT` - Value indicates the retry attempt for a job. Default value of 0.\n\nFull environment variable reference: [https://buildkite.com/docs/pipelines/environment-variables](https://buildkite.com/docs/pipelines/environment-variables)\n\n#### Prerequisites\n\n1.  The run to validate and this module's validation script are being executed within the same build.\n2.  The module script is always executed _after_ the run to validate has been created. This can be achieved by executing the module script in serial with the cypress recording in the same build.\n\nIn order to iterate on your verification script and see everything working without putting code into your CI environment, it can be useful to simulate the CI context for a specific Cypress run locally. This can save a lot of time when getting started.\n",
      "section": "ui-coverage",
      "anchors": [
        "buildkite"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 233
    },
    {
      "id": "ui-coverage/results-api#essential-environment-variables",
      "doc_id": "ui-coverage/results-api",
      "heading": "Essential environment variables",
      "heading_level": 4,
      "content_markdown": "#### Essential environment variables\n\n*   `BUILDKITE` - Presence identifies the environment as a Buildkite environment.\n*   `BUILDKITE_BUILD_ID` - Value uniquely identifies a build. This value does not change across different jobs within the same build.\n*   `BUILDKITE_JOB_ID` - Value uniquely identifies a job execution. Each job in a build has a unique job ID.\n*   `BUILDKITE_RETRY_COUNT` - Value indicates the retry attempt for a job. Default value of 0.\n\nFull environment variable reference: [https://buildkite.com/docs/pipelines/environment-variables](https://buildkite.com/docs/pipelines/environment-variables)\n",
      "section": "ui-coverage",
      "anchors": [
        "essential-environment-variables"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 99
    },
    {
      "id": "ui-coverage/results-api#prerequisites",
      "doc_id": "ui-coverage/results-api",
      "heading": "Prerequisites",
      "heading_level": 4,
      "content_markdown": "#### Prerequisites\n\n1.  The run to validate and this module's validation script are being executed within the same build.\n2.  The module script is always executed _after_ the run to validate has been created. This can be achieved by executing the module script in serial with the cypress recording in the same build.\n\nIn order to iterate on your verification script and see everything working without putting code into your CI environment, it can be useful to simulate the CI context for a specific Cypress run locally. This can save a lot of time when getting started.\n",
      "section": "ui-coverage",
      "anchors": [
        "prerequisites"
      ],
      "path": "/llm/json/chunked/ui-coverage/results-api.json",
      "token_estimate": 129
    }
  ]
}