diff --git a/.github/workflows/build_sdk_auto.yml b/.github/workflows/build_sdk_auto.yml new file mode 100644 index 000000000..c7b5aa6fd --- /dev/null +++ b/.github/workflows/build_sdk_auto.yml @@ -0,0 +1,31 @@ +name: Auto Build SDK For All Targets + +on: + push: + branches: + - '*' + - '!master' + +jobs: + run: + name: Build ${{ github.ref_name }} SDK For all + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Install dependencies + run: bash ./tools/prepare-ci.sh + + - name: Build + shell: bash + run: | + echo "Building for all" + bash ./build.sh -e -t all + + - name: Upload archive + uses: actions/upload-artifact@v4 + with: + name: artifacts + path: dist \ No newline at end of file diff --git a/.github/workflows/build_sdk_manual_v2.yml b/.github/workflows/build_sdk_manual_v2.yml new file mode 100644 index 000000000..634551727 --- /dev/null +++ b/.github/workflows/build_sdk_manual_v2.yml @@ -0,0 +1,40 @@ +name: Manual Build SDK (v2) For the Specific Target + +on: + workflow_dispatch: + inputs: + target: + type: choice + description: Choose Target + default: 'all' + options: + - 'all' + - 'esp32' + - 'esp32s2' + - 'esp32s3' + - 'esp32c3' + +jobs: + run: + name: Build ${{ github.ref_name }} SDK (v2) For ${{ github.event.inputs.target }} + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Install dependencies + run: bash ./tools/prepare-ci.sh + + - name: Build + shell: bash + run: | + export TARGET_TYPE=${{ github.event.inputs.target }} + echo "Building for $TARGET_TYPE" + bash ./build.sh -e -t $TARGET_TYPE + + - name: Upload archive + uses: actions/upload-artifact@v3 + with: + name: artifacts + path: dist \ No newline at end of file diff --git a/.github/workflows/build_sdk_manual_v3.yml b/.github/workflows/build_sdk_manual_v3.yml new file mode 100644 index 000000000..409dc4e43 --- /dev/null +++ b/.github/workflows/build_sdk_manual_v3.yml @@ -0,0 +1,56 @@ +name: Manual Build SDK (v3) For the Specific Target + +on: + workflow_dispatch: + inputs: + target: + type: choice + description: Choose Target + default: 'all' + options: + - 'all' + - 'esp32' + - 'esp32s2' + - 'esp32s3' + - 'esp32c3' + - 'esp32c6' + - 'esp32h6' + - 'esp32p4' + log_level: + type: choice + description: Choose Log Level + default: 'default' + options: + - 'default' + - 'none' + - 'verbose' + - 'debug' + - 'info' + - 'warning' + - 'error' + +jobs: + run: + name: Build ${{ github.ref_name }} SDK (v3) For ${{ github.event.inputs.target }} + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Install dependencies + run: bash ./tools/prepare-ci.sh + + - name: Build + shell: bash + run: | + export TARGET_TYPE=${{ github.event.inputs.target }} + export LOG_LEVEL=${{ github.event.inputs.log_level }} + echo "Building for $TARGET_TYPE (log_level: $LOG_LEVEL)" + bash ./build.sh -e -t $TARGET_TYPE -D $LOG_LEVEL + + - name: Upload archive + uses: actions/upload-artifact@v4 + with: + name: artifacts + path: dist \ No newline at end of file diff --git a/.github/workflows/cron.yml b/.github/workflows/cron.yml deleted file mode 100644 index 00405c4ba..000000000 --- a/.github/workflows/cron.yml +++ /dev/null @@ -1,144 +0,0 @@ -name: Cron Build - -on: - schedule: -# ┌───────────── minute (0 - 59) -# │ ┌───────────── hour (0 - 23) -# │ │ ┌───────────── day of the month (1 - 31) -# │ │ │ ┌───────────── month (1 - 12 or JAN-DEC) -# │ │ │ │ ┌───────────── day of the week (0 - 6 or SUN-SAT) -# │ │ │ │ │ -# │ │ │ │ │ -# │ │ │ │ │ -# * * * * * - - cron: '0 */6 * * *' - -defaults: - run: - shell: bash - -jobs: - run: - name: Build with IDF ${{ matrix.idf_branch }} - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - idf_branch: [release/v5.1, release/v4.4] #, release/v3.3] - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Install dependencies - run: bash ./tools/prepare-ci.sh - - name: Build - env: - GITHUB_TOKEN: ${{ secrets.PUSH_TOKEN }} - GIT_AUTHOR_EMAIL: ${{ secrets.PUSH_EMAIL }} - GIT_COMMITTER_EMAIL: ${{ secrets.PUSH_EMAIL }} - IDF_BRANCH: ${{ matrix.idf_branch }} - run: | - git checkout ${{ matrix.idf_branch }} || echo "Using master branch" - bash ./tools/cron.sh - - name: Upload build - if: failure() - uses: actions/upload-artifact@v4 - with: - name: build - path: build - - name: Upload archive - uses: actions/upload-artifact@v4 - with: - name: artifacts - path: dist - - - # check: - # name: Check if result should be deployed - # runs-on: ubuntu-latest - # strategy: - # matrix: - # branch: [release/v5.1, release/v4.4] #, release/v3.3] - # outputs: - # idf_branch: ${{ steps.check.outputs.idf_branch }} - # idf_commit: ${{ steps.check.outputs.idf_commit }} - # ar_branch: ${{ steps.check.outputs.ar_branch }} - # ar_new_commit_message: ${{ steps.check.outputs.ar_new_commit_message }} - # ar_new_branch_name: ${{ steps.check.outputs.ar_new_branch_name }} - # ar_new_pr_title: ${{ steps.check.outputs.ar_new_pr_title }} - # ar_has_commit: ${{ steps.check.outputs.ar_has_commit }} - # ar_has_branch: ${{ steps.check.outputs.ar_has_branch }} - # ar_has_pr: ${{ steps.check.outputs.ar_has_pr }} - # libs_version: ${{ steps.check.outputs.libs_version }} - # libs_has_commit: ${{ steps.check.outputs.libs_has_commit }} - # libs_has_branch: ${{ steps.check.outputs.libs_has_branch }} - # steps: - # - uses: actions/checkout@v3 - # - id: check - # env: - # GITHUB_TOKEN: ${{ secrets.PUSH_TOKEN }} - # GIT_AUTHOR_EMAIL: ${{ secrets.PUSH_EMAIL }} - # GIT_COMMITTER_EMAIL: ${{ secrets.PUSH_EMAIL }} - # IDF_BRANCH: ${{ matrix.idf_branch }} - # run: bash ./tools/check-deploy-needed.sh - - # build: - # name: Build Libs for ${{ matrix.target }} - # runs-on: ubuntu-latest - # needs: check - # if: needs.check.outputs.libs_has_commit == '0' || needs.check.outputs.ar_has_commit == '0' - # strategy: - # matrix: - # target: [esp32, esp32s2, esp32s3, esp32c3, esp32c6, esp32h2] - # fail-fast: false - # steps: - # - uses: actions/checkout@v3 - # # - name: Install dependencies - # # run: bash ./tools/prepare-ci.sh - # - shell: bash - # name: Build Libs for ${{ matrix.target }} - # run: echo ${{ matrix.target }} - # # run: bash ./build.sh -t ${{ matrix.target }} - # # - name: Upload archive - # # uses: actions/upload-artifact@v3 - # # with: - # # name: artifacts - # # path: dist - - # deploy: - # name: Deploy build - # runs-on: ubuntu-latest - # needs: [check, build] - # steps: - # - uses: actions/checkout@v3 - # - shell: bash - # env: - # GITHUB_TOKEN: ${{ secrets.PUSH_TOKEN }} - # GIT_AUTHOR_EMAIL: ${{ secrets.PUSH_EMAIL }} - # GIT_COMMITTER_EMAIL: ${{ secrets.PUSH_EMAIL }} - # IDF_BRANCH: ${{ needs.check.outputs.idf_branch }} - # IDF_COMMIT: ${{ needs.check.outputs.idf_commit }} - # AR_BRANCH: ${{ needs.check.outputs.ar_branch }} - # AR_NEW_COMMIT_MESSAGE: ${{ needs.check.outputs.ar_new_commit_message }} - # AR_NEW_BRANCH_NAME: ${{ needs.check.outputs.ar_new_branch_name }} - # AR_NEW_PR_TITLE: ${{ needs.check.outputs.ar_new_pr_title }} - # AR_HAS_COMMIT: ${{ needs.check.outputs.ar_has_commit }} - # AR_HAS_BRANCH: ${{ needs.check.outputs.ar_has_branch }} - # AR_HAS_PR: ${{ needs.check.outputs.ar_has_pr }} - # LIBS_VERSION: ${{ needs.check.outputs.libs_version }} - # LIBS_HAS_COMMIT: ${{ needs.check.outputs.libs_has_commit }} - # LIBS_HAS_BRANCH: ${{ needs.check.outputs.libs_has_branch }} - # run: | - # echo "IDF_COMMIT: $IDF_COMMIT" - # echo "AR_BRANCH: $AR_BRANCH" - # echo "AR_NEW_COMMIT_MESSAGE: $AR_NEW_COMMIT_MESSAGE" - # echo "AR_NEW_BRANCH_NAME: $AR_NEW_BRANCH_NAME" - # echo "AR_NEW_PR_TITLE: $AR_NEW_PR_TITLE" - # echo "AR_HAS_COMMIT: $AR_HAS_COMMIT" - # echo "AR_HAS_BRANCH: $AR_HAS_BRANCH" - # echo "AR_HAS_PR: $AR_HAS_PR" - # echo "LIBS_VERSION: $LIBS_VERSION" - # echo "LIBS_HAS_COMMIT: $LIBS_HAS_COMMIT" - # echo "LIBS_HAS_BRANCH: $LIBS_HAS_BRANCH" - diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml deleted file mode 100644 index 8952015a2..000000000 --- a/.github/workflows/docker.yml +++ /dev/null @@ -1,81 +0,0 @@ -name: Build and push Docker image - -on: - push: - branches: - - 'master' - - 'release/*' - tags: - - 'v*.*' - -env: - # Build the image for amd64 and arm64 - BUILD_PLATFORMS: linux/amd64,linux/arm64 - DOCKERHUB_REPO: ${{ github.repository_owner }}/esp32-arduino-lib-builder - -jobs: - docker: - # Disable the job in forks - if: ${{ github.repository_owner == 'espressif' }} - - runs-on: ubuntu-latest - steps: - # Depending on the branch/tag, set CLONE_BRANCH_OR_TAG variable (used in the Dockerfile - # as a build arg) and TAG_NAME (used when tagging the image). - # - # The following 3 steps cover the alternatives (tag, release branch, master branch): - - name: Set variables (tags) - if: ${{ github.ref_type == 'tag' }} - run: | - echo "CLONE_BRANCH_OR_TAG=$GITHUB_REF_NAME" >> $GITHUB_ENV - echo "TAG_NAME=$GITHUB_REF_NAME" >> $GITHUB_ENV - - name: Set variables (release branches) - if: ${{ github.ref_type == 'branch' && startsWith(github.ref_name, 'release/') }} - run: | - echo "CLONE_BRANCH_OR_TAG=$GITHUB_REF_NAME" >> $GITHUB_ENV - echo "TAG_NAME=release-${GITHUB_REF_NAME##release/}" >> $GITHUB_ENV - - name: Set variables (main branch) - if: ${{ github.ref_type == 'branch' && github.ref_name == 'master' }} - run: | - echo "CLONE_BRANCH_OR_TAG=master" >> $GITHUB_ENV - echo "TAG_NAME=latest" >> $GITHUB_ENV - - # Display the variables set above, just in case. - - name: Check variables - run: | - echo "CLONE_BRANCH_OR_TAG: $CLONE_BRANCH_OR_TAG" - echo "CHECKOUT_REF: $CHECKOUT_REF" - echo "TAG_NAME: $TAG_NAME" - - # The following steps are the standard boilerplate from - # https://github.com/marketplace/actions/build-and-push-docker-images - - name: Checkout - uses: actions/checkout@v4 - - name: Login to Docker Hub - uses: docker/login-action@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Set up QEMU for multiarch builds - uses: docker/setup-qemu-action@v3 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - name: Build and push - uses: docker/build-push-action@v5 - with: - context: tools/docker - push: true - tags: ${{ env.DOCKERHUB_REPO }}:${{ env.TAG_NAME }} - platforms: ${{ env.BUILD_PLATFORMS }} - build-args: | - LIBBUILDER_CLONE_URL=${{ github.server_url }}/${{ github.repository }}.git - LIBBUILDER_CLONE_BRANCH_OR_TAG=${{ env.CLONE_BRANCH_OR_TAG }} - - - name: Update Docker Hub repository description (master branch) - if: ${{ github.ref_type == 'branch' && github.ref_name == 'master' }} - uses: peter-evans/dockerhub-description@v4 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - repository: ${{ env.DOCKERHUB_REPO }} - readme-filepath: ./tools/docker/README.md diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml deleted file mode 100644 index c3edd52d3..000000000 --- a/.github/workflows/push.yml +++ /dev/null @@ -1,67 +0,0 @@ -name: ESP32 Arduino Libs CI - -on: - push: - branches: - - master - pull_request: - -concurrency: - group: esp-idf-libs-${{github.event.pull_request.number || github.ref}} - cancel-in-progress: true - -jobs: - - build-libs: - name: Build Libs for ${{ matrix.target }} - runs-on: ubuntu-latest - strategy: - matrix: - target: [esp32, esp32s2, esp32s3, esp32c2, esp32c3, esp32c6, esp32h2] - fail-fast: false - steps: - - uses: actions/checkout@v4 - - name: Install dependencies - run: bash ./tools/prepare-ci.sh - - name: Build Libs for ${{ matrix.target }} - run: bash ./build.sh -e -t ${{ matrix.target }} - - name: Upload build - if: failure() - uses: actions/upload-artifact@v4 - with: - name: build-${{ matrix.target }} - path: build - - name: Upload archive - uses: actions/upload-artifact@v4 - with: - name: artifacts-${{ matrix.target }} - path: dist - - combine-artifacts: - name: Combine artifacts - needs: build-libs - runs-on: ubuntu-latest - steps: - - name: Download artifacts - uses: actions/download-artifact@v4 - with: - path: dist - pattern: artifacts-* - merge-multiple: true - - shell: bash - run: | - mkdir -p out - find dist -name 'arduino-esp32-libs-esp*.tar.gz' -exec tar zxvf {} -C out \; - cd out/tools/esp32-arduino-libs && tar zcf ../../../dist/esp32-arduino-libs.tar.gz * && cd ../../.. - cp out/package_esp32_index.template.json dist/package_esp32_index.template.json - - name: Upload full esp32-arduino-libs archive - uses: actions/upload-artifact@v4 - with: - name: esp32-arduino-libs - path: dist/esp32-arduino-libs.tar.gz - - name: Upload package_esp32_index.template.json - uses: actions/upload-artifact@v4 - with: - name: package-esp32-index-json - path: dist/package_esp32_index.template.json - diff --git a/.github/workflows/repository_dispatch.yml b/.github/workflows/repository_dispatch.yml deleted file mode 100644 index a18412a3d..000000000 --- a/.github/workflows/repository_dispatch.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Remote Trigger - -on: repository_dispatch - -jobs: - run: - name: Dispatch Event - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Install dependencies - run: bash ./tools/prepare-ci.sh - - name: Handle Event - env: - GITHUB_TOKEN: ${{ secrets.PUSH_TOKEN }} - GIT_AUTHOR_EMAIL: ${{ secrets.PUSH_EMAIL }} - GIT_COMMITTER_EMAIL: ${{ secrets.PUSH_EMAIL }} - run: bash ./tools/repository_dispatch.sh - - name: Upload build - if: failure() - uses: actions/upload-artifact@v4 - with: - name: build - path: build - - name: Upload archive - uses: actions/upload-artifact@v4 - with: - name: artifacts - path: dist diff --git a/README.md b/README.md index 501c62887..348ef322f 100644 --- a/README.md +++ b/README.md @@ -1,43 +1,136 @@ -# ESP32 Arduino Lib Builder [![ESP32 Arduino Libs CI](https://github.com/espressif/esp32-arduino-lib-builder/actions/workflows/push.yml/badge.svg)](https://github.com/espressif/esp32-arduino-lib-builder/actions/workflows/push.yml) +# ESP32 Arduino Lib Builder -This repository contains the scripts that produce the libraries included with esp32-arduino. +This repository contains the scripts that produce the SDK included with esp32-arduino. It not only supports local compilation but also provides an automated compilation and SDK download process through GitHub Actions. -Tested on Ubuntu (32 and 64 bit), Raspberry Pi and MacOS. +If you want to directly use the precompiled SDK based on the branches below, please check the [arduino-esp32-SDK](https://github.com/esp-arduino-libs/arduino-esp32-sdk) repository. -### Build on Ubuntu and Raspberry Pi -```bash -sudo apt-get install git wget curl libssl-dev libncurses-dev flex bison gperf python python-pip python-setuptools python-serial python-click python-cryptography python-future python-pyparsing python-pyelftools cmake ninja-build ccache jq -sudo pip install --upgrade pip -git clone https://github.com/espressif/esp32-arduino-lib-builder -cd esp32-arduino-lib-builder -./build.sh -``` +## Contents -### Using the User Interface +- [ESP32 Arduino Lib Builder](#esp32-arduino-lib-builder) + - [Contents](#contents) + - [Feature](#feature) + - [Branches](#branches) + - [Release Versions](#release-versions) + - [High Performance Versions](#high-performance-versions) + - [How to Use](#how-to-use) + - [Compilation in Github](#compilation-in-github) + - [Compilation in Local](#compilation-in-local) -You can more easily build the libraries using the user interface found in the `tools/config_editor/` folder. -It is a Python script that allows you to select and edit the options for the libraries you want to build. -The script has mouse support and can also be pre-configured using the same command line arguments as the `build.sh` script. -For more information and troubleshooting, please refer to the [UI README](tools/config_editor/README.md). +## Feature -To use it, follow these steps: +In comparison to the original [esp32-arduino-lib-builder](https://github.com/espressif/esp32-arduino-lib-builder), this repository is used for recompiling specific versions of the SDK in `arduino-esp32` and has the following branches: -1. Make sure you have the required dependencies installed: - - Python 3.9 or later - - The [Textual](https://github.com/textualize/textual/) library - - All the dependencies listed in the previous section +* `release/*` is used to recompile the original SDK for a specified version. +* `high_perf/*` is used to recompile high performance versions based on a specified SDK version. It changes some configurations (as below) and can achieve higher performance in some cases, especially for avoiding [screen drifting](https://docs.espressif.com/projects/esp-faq/en/latest/software-framework/peripherals/lcd.html#why-do-i-get-drift-overall-drift-of-the-display-when-esp32-s3-is-driving-an-rgb-lcd-screen) when using RGB LCDs. (Only available for v3.x and above versions) -2. Execute the script `tools/config_editor/app.py` from any folder. It will automatically detect the path to the root of the repository. + * For ESP32-S3 SoCs: -3. Configure the compilation and ESP-IDF options as desired. + * All: -4. Click on the "Compile Static Libraries" button to start the compilation process. + * It changes the optimization level from `-Os` to `-O2` by enabling `CONFIG_COMPILER_OPTIMIZATION_PERF=y`. + * It increases the size of the data cache line width from `32` to `64` by enabling `CONFIG_ESP32S3_DATA_CACHE_LINE_64B=y`. -5. The script will show the compilation output in a new screen. Note that the compilation process can take many hours, depending on the number of libraries selected and the options chosen. + * For ESP32-S3R8 (Octal PSRAM): -6. If the compilation is successful and the option to copy the libraries to the Arduino Core folder is enabled, it will already be available for use in the Arduino IDE. Otherwise, you can find the compiled libraries in the `esp32-arduino-libs` folder alongside this repository. - - Note that the copy operation doesn't currently support the core downloaded from the Arduino IDE Boards Manager, only the manual installation from the [`arduino-esp32`](https://github.com/espressif/arduino-esp32) repository. + * It enables the function **XIP on PSRAM** by enabling `CONFIG_SPIRAM_FETCH_INSTRUCTIONS=y` and `CONFIG_SPIRAM_RODATA=y` (< v3.1.1). + * It enables the function **XIP on PSRAM** by enabling `CONFIG_SPIRAM_XIP_FROM_PSRAM=y` (>= v3.1.1). -### Documentation + * For ESP32-P4 SoCs: -For more information about how to use the Library builder, please refer to this [Documentation page](https://docs.espressif.com/projects/arduino-esp32/en/latest/lib_builder.html?highlight=lib%20builder) + * All: + + * It increases the size of the L2 cache line width from `64` to `128` by enabling `CONFIG_CACHE_L2_CACHE_LINE_128B=y`. + * It increases the size of the L2 cache line size from `128KB` to `256KB` by enabling `CONFIG_CACHE_L2_CACHE_256KB=y`. + +> [!WARNING] +> For the ESP32-P4 in version v3.1.1, enabling `CONFIG_COMPILER_OPTIMIZATION_PERF=y` and `CONFIG_SPIRAM_XIP_FROM_PSRAM=y` will cause the chip to fail to boot properly. + +## Branches + +### Release Versions + +* [release/v2.0.13](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/release/v2.0.13) +* [release/v3.0.0-alpha3](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/release/v3.0.0-alpha3) +* [release/v3.0.0](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/release/v3.0.0) +* [release/v3.0.2](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/release/v3.0.2) +* [release/v3.0.7](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/release/v3.0.7) +* [release/v3.1.1](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/release/v3.1.1) + +### High Performance Versions + +As only v3.x and above versions support the required high-performance configurations, the branches here are only used for compiling the high_perf version of v3.x. + +* [high_perf/v3.0.0-alpha3](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/high_perf/v3.0.0-alpha3) +* [high_perf/v3.0.0](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/high_perf/v3.0.0) +* [high_perf/v3.0.2](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/high_perf/v3.0.2) +* [high_perf/v3.0.7](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/high_perf/v3.0.7) +* [high_perf/v3.1.1](https://github.com/esp-arduino-libs/esp32-arduino-lib-builder/tree/high_perf/v3.1.1) + +> [!TIP] +> [Precompiled SDKs](https://github.com/esp-arduino-libs/arduino-esp32-sdk?tab=readme-ov-file#for-sdks-suffixed-with--h) + +## How to Use + +### Compilation in Github + +1. Click `Fork` to fork this repository into your account. + + + +2. Uncheck the `Copy the master branch only` option and click `Create fork`. + + + +3. If you want to change the default configurations, follow the below steps: + + * Choose a branch based on the version you want to recompile. Here take `release/v3.0.0-alpha3` as an example. + + + + * To change the default configurations, mofify the files in the `configs` folder based on your application requirements. + + + + * Commit the changes. + + + + * Select `Create a new branch for this commit and start a pull request`, change the branch name if needed and click `Propose changes`. + + + + * Do not create a pull request, just click `Action`. Here you can see the compilation process. (Default to compile all targets) + + + + + +4. If you don't need to change the default configurations or just want to compile a specific target, follow the below steps: + + * Click `Actions`, here are two workflows, `Manual Build SDK For (v2) the Specific Target` is used to compile the v2.x version, and `Manual Build SDK For (v3) the Specific Target` is used to compile the v3.x version. + + + + * If you want to compile the **v2.x version**, click `Manual Build SDK For (v2) the Specific Target`, then click `Run workflow`. Here you can select the branch (only available for the `xx/v2.x.x` branches) and the target. + + + + * If you want to compile the **v3.x version**, click `Manual Build SDK For (v3) the Specific Target`, then click `Run workflow`. Here you can select the branch (only available for the `xx/v3.x.x` branches), the target and log level. So there are no `debug/v3.x.x` branches, you can specify the log level when compiling. + + + + * Then the compilation process will start. After it is complete, download the zip file from the `Artifacts`. + + + + + +5. To replace the original SDK, please refer to the [steps](https://github.com/esp-arduino-libs/arduino-esp32-sdk#how-to-use) for more details. + +### Compilation in Local + +1. Choose a branch version based on your application requirements and download it to the local. +2. Modify the files in the `configs` folder based on your application requirements. +3. Consult its README for compilation instructions. Note that the process involves downloading `ESP-IDF`, `arduino-esp32`, and several large components, which may take a considerable amount of time. Please be patient. +4. After the compilation is complete, the SDK will be located in the `out` folder. +5. To replace the original SDK, please refer to the [steps](https://github.com/esp-arduino-libs/arduino-esp32-sdk#how-to-use) for more details. diff --git a/docs/_static/auto_step_0-1.png b/docs/_static/auto_step_0-1.png new file mode 100644 index 000000000..e6c61e207 Binary files /dev/null and b/docs/_static/auto_step_0-1.png differ diff --git a/docs/_static/auto_step_0-2.png b/docs/_static/auto_step_0-2.png new file mode 100644 index 000000000..3acfe314f Binary files /dev/null and b/docs/_static/auto_step_0-2.png differ diff --git a/docs/_static/auto_step_1.png b/docs/_static/auto_step_1.png new file mode 100644 index 000000000..15ae08f45 Binary files /dev/null and b/docs/_static/auto_step_1.png differ diff --git a/docs/_static/auto_step_2.png b/docs/_static/auto_step_2.png new file mode 100644 index 000000000..78032d693 Binary files /dev/null and b/docs/_static/auto_step_2.png differ diff --git a/docs/_static/auto_step_3.png b/docs/_static/auto_step_3.png new file mode 100644 index 000000000..f35e04a4d Binary files /dev/null and b/docs/_static/auto_step_3.png differ diff --git a/docs/_static/auto_step_4.png b/docs/_static/auto_step_4.png new file mode 100644 index 000000000..f2182ebe3 Binary files /dev/null and b/docs/_static/auto_step_4.png differ diff --git a/docs/_static/auto_step_5.png b/docs/_static/auto_step_5.png new file mode 100644 index 000000000..96584833a Binary files /dev/null and b/docs/_static/auto_step_5.png differ diff --git a/docs/_static/auto_step_6.png b/docs/_static/auto_step_6.png new file mode 100644 index 000000000..5dd048168 Binary files /dev/null and b/docs/_static/auto_step_6.png differ diff --git a/docs/_static/auto_step_7.png b/docs/_static/auto_step_7.png new file mode 100644 index 000000000..7882ff377 Binary files /dev/null and b/docs/_static/auto_step_7.png differ diff --git a/docs/_static/manual_step_0_0.png b/docs/_static/manual_step_0_0.png new file mode 100644 index 000000000..4e8d9ca9d Binary files /dev/null and b/docs/_static/manual_step_0_0.png differ diff --git a/docs/_static/manual_step_0_1.png b/docs/_static/manual_step_0_1.png new file mode 100644 index 000000000..1a75c69bc Binary files /dev/null and b/docs/_static/manual_step_0_1.png differ diff --git a/docs/_static/manual_step_0_2.png b/docs/_static/manual_step_0_2.png new file mode 100644 index 000000000..8a3fae5c3 Binary files /dev/null and b/docs/_static/manual_step_0_2.png differ diff --git a/docs/_static/manual_step_1.png b/docs/_static/manual_step_1.png new file mode 100644 index 000000000..a049f935a Binary files /dev/null and b/docs/_static/manual_step_1.png differ diff --git a/docs/_static/manual_step_2.png b/docs/_static/manual_step_2.png new file mode 100644 index 000000000..ed1f7aded Binary files /dev/null and b/docs/_static/manual_step_2.png differ diff --git a/docs/_static/manual_step_3.png b/docs/_static/manual_step_3.png new file mode 100644 index 000000000..19e14e320 Binary files /dev/null and b/docs/_static/manual_step_3.png differ diff --git a/tools/prepare-ci.sh b/tools/prepare-ci.sh index 6867ae045..e4d43cebc 100755 --- a/tools/prepare-ci.sh +++ b/tools/prepare-ci.sh @@ -1,5 +1,6 @@ #!/bin/bash -sudo apt update && sudo apt install -y git wget curl libssl-dev libncurses-dev flex bison gperf python3 cmake ninja-build ccache +sudo apt-get update && sudo apt-get upgrade -y +sudo apt-get install -y git wget curl libssl-dev libncurses-dev flex bison gperf python3 cmake ninja-build ccache curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && python3 get-pip.py && \ pip3 install setuptools pyserial click future wheel cryptography pyparsing pyelftools