Skip to content

Add documentation for setting up a mirror for Cypress binary downloads #5290

Open
@aarowman

Description

@aarowman

Subject

guides, examples, mirror setup

Description

The current documentation describes mirroring briefly, and there are a few different options in setting up a mirror. The docs do not give detail on how to do the actual setup of the mirror. It only references how to use a mirror that was hopefully set up correctly.

Relevant links:

The docs reference 3 main approaches:

  1. Using download.cypress.io (full site)

    If you choose to mirror the entire Cypress download site,"

    It seems that mirroring download.cypress.io, we would need to mirror everything, including the query params and redirect behavior. This is not clear how to set up correctly.

  2. Using cdn.cypress.io

    To install the binary from a download mirror that matches the exact file structure of https://cdn.cypress.io (works for Cypress 9.3.0 or newer):

    export CYPRESS_DOWNLOAD_MIRROR=https://cypress-download.local
    export CYPRESS_DOWNLOAD_PATH_TEMPLATE='${endpoint}/${platform}-${arch}/cypress.zip'
    # Example of a resulting URL: https://cypress-download.local/desktop/10.11.0/linux-x64/cypress.zip
    
  3. Some custom file structure

    To install the binary from a download server with a custom file structure (works for Cypress 10.6.0 or newer):

    export CYPRESS_DOWNLOAD_PATH_TEMPLATE='https://software.local/cypress/${platform}/${arch}/${version}/cypress.zip'
    # Example of a resulting URL: https://software.local/cypress/linux/x64/10.11.0/cypress.zip
    

Each of these 3 will need to be set up in different ways. Since mirrors could just copy/cache the files, or actually redirect/proxy to the source system, or both, it would be helpful to have more detailed descriptions.

Note: An important part is how to differentiate between installs (Windows, MacOS, Linux), and also how to update the files as new versions are released.

(Also see discussion at cypress-io/cypress#8471 where a mirror issue caused problems, but was not obvious why)

Metadata

Metadata

Assignees

No one assigned

    Labels

    content: rewritetriagedIssue has been routed to backlog. This is not a commitment to have it prioritized by the team.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions