idf_tools: Add option to replace all GitHub tools download URLs with dl.espressif.com

Via new IDF_GITHUB_ASSETS environment variable.
This commit is contained in:
Angus Gratton
2020-09-25 09:58:49 +10:00
parent 71cf821659
commit bebc75af48
3 changed files with 74 additions and 2 deletions

View File

@@ -40,6 +40,20 @@ Inside ``IDF_TOOLS_PATH``, the scripts performing tools installation create the
- ``dist`` — where the archives of the tools are downloaded.
- ``tools`` — where the tools are extracted. The tools are extracted into subdirectories: ``tools/TOOL_NAME/VERSION/``. This arrangement allows different versions of tools to be installed side by side.
GitHub Assets Mirror
--------------------
Most of the tools downloaded by the tools installer are GitHub Release Assets, which are files attached to a software release on GitHub.
If GitHub downloads are inaccessible or slow to access, it's possible to configure a GitHub assets mirror.
To use Espressif's download server, set the environment variable ``IDF_GITHUB_ASSETS`` to ``dl.espressif.com/github_assets``. When the install process is downloading a tool from ``github.com``, the URL will be rewritten to use this server instead.
Any mirror server can be used provided the URL matches the ``github.com`` download URL format: the install process will replace ``https://github.com`` with ``https://${IDF_GITHUB_ASSETS}`` for any GitHub asset URL that it downloads.
.. note:: The Espressif download server doesn't currently mirror everything from GitHub, it only mirrors files attached as Assets to some releases as well as source archives for some releases.
``idf_tools.py`` script
-----------------------

View File

@@ -219,6 +219,33 @@ Linux and macOS
cd ~/esp/esp-idf
./install.sh
Alternative File Downloads
~~~~~~~~~~~~~~~~~~~~~~~~~~
The tools installer downloads a number of files attached to GitHub Releases. If accessing GitHub is slow then it is possible to set an environment variable to prefer Espressif's download server for GitHub asset downloads.
.. note:: This setting only controls individual tools downloaded from GitHub releases, it doesn't change the URLs used to access any Git repositories.
Windows
-------
To prefer the Espressif download server when running the ESP-IDF Tools Installer or installing tools from the command line, open the System control panel, then click on Advanced Settings. Add a new Environment Variable (of type either User or System) with the name ``IDF_GITHUB_ASSETS`` and value ``dl.espressif.com/github_assets``. Click OK once done.
If the command line window or ESP-IDF Tools Installer window was already open before you added the new environment variable, you will need to close and reopen it.
While this environment variable is still set, the ESP-IDF Tools Installer and the command line installer will prefer the Espressif download server.
Linux and macOS
---------------
To prefer the Espressif download server when installing tools, use the following sequence of commands when running ``install.sh``:
.. code-block:: bash
cd ~/esp/esp-idf
export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets"
./install.sh
Customizing the tools installation path
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~