From b380ded5faa1af0765898be79315cdc5d80483c7 Mon Sep 17 00:00:00 2001 From: David Cermak Date: Wed, 3 Nov 2021 13:08:52 +0100 Subject: [PATCH 1/6] Examples: Use bigger 4M flash for OTA example --- .../esp_modem/examples/simple_cmux_client/sdkconfig.defaults | 1 + 1 file changed, 1 insertion(+) diff --git a/components/esp_modem/examples/simple_cmux_client/sdkconfig.defaults b/components/esp_modem/examples/simple_cmux_client/sdkconfig.defaults index 7841f6833..b6fa51455 100644 --- a/components/esp_modem/examples/simple_cmux_client/sdkconfig.defaults +++ b/components/esp_modem/examples/simple_cmux_client/sdkconfig.defaults @@ -6,6 +6,7 @@ CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=4096 CONFIG_LWIP_PPP_ENABLE_IPV6=n CONFIG_COMPILER_CXX_EXCEPTIONS=y CONFIG_PARTITION_TABLE_TWO_OTA=y +CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y CONFIG_NEWLIB_STDOUT_LINE_ENDING_LF=y CONFIG_NEWLIB_STDIN_LINE_ENDING_LF=y CONFIG_MAIN_TASK_STACK_SIZE=8192 \ No newline at end of file From c8c24ed2fcdd9a5eb736ffb9ff1a7665a0283618 Mon Sep 17 00:00:00 2001 From: David Cermak Date: Wed, 3 Nov 2021 13:45:36 +0100 Subject: [PATCH 2/6] Examples: Fix build error when SIM needs no PIN --- components/esp_modem/examples/ap_to_pppos/main/network_dce.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/components/esp_modem/examples/ap_to_pppos/main/network_dce.c b/components/esp_modem/examples/ap_to_pppos/main/network_dce.c index 499593aa2..8c825a0fd 100644 --- a/components/esp_modem/examples/ap_to_pppos/main/network_dce.c +++ b/components/esp_modem/examples/ap_to_pppos/main/network_dce.c @@ -25,6 +25,7 @@ esp_err_t modem_init_network(esp_netif_t *netif) return ESP_FAIL; } +#ifdef CONFIG_EXAMPLE_NEED_SIM_PIN // configure the PIN bool pin_ok = false; if (esp_modem_read_pin(dce, &pin_ok) == ESP_OK && pin_ok == false) { @@ -34,6 +35,7 @@ esp_err_t modem_init_network(esp_netif_t *netif) abort(); } } +#endif // CONFIG_EXAMPLE_NEED_SIM_PIN return ESP_OK; } From fec83e591565eb0b7b651f09bc44d1929ba9d141 Mon Sep 17 00:00:00 2001 From: David Cermak Date: Wed, 3 Nov 2021 10:56:30 +0100 Subject: [PATCH 3/6] CI: Initial GitHub Action to build examples Build job definitions for building examples for ESP32 only against IDF master, 4.4, 4.3, 4.2 and 4.1 --- .github/workflows/build.yml | 151 ++++++++++++++++++++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000..4a5f23adc --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,151 @@ +name: Builld with IDF + +on: + - push + +jobs: + build_idf_master: + name: build-with-IDF-master + runs-on: ubuntu-latest + + steps: + - name: Checkout esp-protocols + uses: actions/checkout@master + with: + path: esp-protocols + - name: Checkout IDF + uses: actions/checkout@master + with: + repository: espressif/esp-idf + path: esp-idf + + - name: Build-examples-with-IDF + run: | + cd $GITHUB_WORKSPACE/esp-idf + git submodule update --init --recursive + ./install.sh + source export.sh + cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/simple_cmux_client + idf.py build + cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/ap_to_pppos + idf.py build + cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/modem_console + idf.py build + cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/pppos_client + idf.py build + + build_idf_v4_4: + name: build-with-IDF-4.4 + runs-on: ubuntu-latest + + steps: + - name: Checkout esp-protocols + uses: actions/checkout@master + with: + path: esp-protocols + - name: Checkout IDF + uses: actions/checkout@master + with: + repository: espressif/esp-idf + path: esp-idf + ref: release/v4.4 + + - name: Build-examples-with-IDF + run: | + cd $GITHUB_WORKSPACE/esp-idf + git submodule update --init --recursive + ./install.sh + source export.sh + cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/simple_cmux_client + idf.py build + cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/ap_to_pppos + idf.py build + cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/modem_console + idf.py build + cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/pppos_client + idf.py build + + build_idf_v4_3: + name: build-with-IDF-4.3 + runs-on: ubuntu-latest + + steps: + - name: Checkout esp-protocols + uses: actions/checkout@master + with: + path: esp-protocols + - name: Checkout IDF + uses: actions/checkout@master + with: + repository: espressif/esp-idf + path: esp-idf + ref: release/v4.3 + + - name: Build-examples-with-IDF + run: | + cd $GITHUB_WORKSPACE/esp-idf + git submodule update --init --recursive + ./install.sh + source export.sh + cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/simple_cmux_client + idf.py build + cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/ap_to_pppos + idf.py build + cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/modem_console + idf.py build + cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/pppos_client + idf.py build + + build_idf_v4_2: + name: build-with-IDF-4.2 + runs-on: ubuntu-latest + + steps: + - name: Checkout esp-protocols + uses: actions/checkout@master + with: + path: esp-protocols + - name: Checkout IDF + uses: actions/checkout@master + with: + repository: espressif/esp-idf + path: esp-idf + ref: release/v4.2 + + - name: Build-examples-with-IDF + run: | + cd $GITHUB_WORKSPACE/esp-idf + git submodule update --init --recursive + ./install.sh + source export.sh + cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/ap_to_pppos + idf.py build + cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/modem_console + idf.py build + cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/pppos_client + idf.py build + + build_idf_v4_1: + name: build-with-IDF-4.1 + runs-on: ubuntu-latest + + steps: + - name: Checkout esp-protocols + uses: actions/checkout@master + with: + path: esp-protocols + - name: Checkout IDF + uses: actions/checkout@master + with: + repository: espressif/esp-idf + path: esp-idf + ref: release/v4.1 + + - name: Build-examples-with-IDF + run: | + cd $GITHUB_WORKSPACE/esp-idf + git submodule update --init --recursive + ./install.sh + source export.sh + cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/pppos_client + idf.py build From c0021ceeb224b2de71e59b9377bfc64585929437 Mon Sep 17 00:00:00 2001 From: David Cermak Date: Thu, 4 Nov 2021 10:28:08 +0100 Subject: [PATCH 4/6] CI: Rewrite flat build jobs using test matrix --- .github/workflows/build.yml | 139 ++++++++---------------------------- 1 file changed, 29 insertions(+), 110 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4a5f23adc..9c5830284 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,7 +1,6 @@ -name: Builld with IDF +name: Build -on: - - push +on: [push, pull_request] jobs: build_idf_master: @@ -34,118 +33,38 @@ jobs: cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/pppos_client idf.py build - build_idf_v4_4: - name: build-with-IDF-4.4 - runs-on: ubuntu-latest + build: + strategy: + matrix: + idf_ver: ["v4.1", "v4.2", "v4.3", "v4.4"] + examples: ["pppos_client", "modem_console", "ap_to_pppos", "simple_cmux_client"] + idf_target: ["esp32"] + exclude: + - idf_ver: "v4.1" + examples: modem_console + - idf_ver: "v4.1" + examples: ap_to_pppos + - idf_ver: "v4.1" + examples: simple_cmux_client + - idf_ver: "v4.2" + examples: simple_cmux_client + runs-on: ubuntu-20.04 + container: espressif/idf:release-${{ matrix.idf_ver }} steps: + - name: Checkout IDF + uses: actions/checkout@v1 + with: + submodules: recursive - name: Checkout esp-protocols uses: actions/checkout@master with: path: esp-protocols - - name: Checkout IDF - uses: actions/checkout@master - with: - repository: espressif/esp-idf - path: esp-idf - ref: release/v4.4 - - - name: Build-examples-with-IDF + - name: Build for ESP32 + env: + IDF_TARGET: ${{ matrix.idf_target }} + shell: bash run: | - cd $GITHUB_WORKSPACE/esp-idf - git submodule update --init --recursive - ./install.sh - source export.sh - cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/simple_cmux_client - idf.py build - cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/ap_to_pppos - idf.py build - cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/modem_console - idf.py build - cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/pppos_client - idf.py build - - build_idf_v4_3: - name: build-with-IDF-4.3 - runs-on: ubuntu-latest - - steps: - - name: Checkout esp-protocols - uses: actions/checkout@master - with: - path: esp-protocols - - name: Checkout IDF - uses: actions/checkout@master - with: - repository: espressif/esp-idf - path: esp-idf - ref: release/v4.3 - - - name: Build-examples-with-IDF - run: | - cd $GITHUB_WORKSPACE/esp-idf - git submodule update --init --recursive - ./install.sh - source export.sh - cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/simple_cmux_client - idf.py build - cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/ap_to_pppos - idf.py build - cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/modem_console - idf.py build - cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/pppos_client - idf.py build - - build_idf_v4_2: - name: build-with-IDF-4.2 - runs-on: ubuntu-latest - - steps: - - name: Checkout esp-protocols - uses: actions/checkout@master - with: - path: esp-protocols - - name: Checkout IDF - uses: actions/checkout@master - with: - repository: espressif/esp-idf - path: esp-idf - ref: release/v4.2 - - - name: Build-examples-with-IDF - run: | - cd $GITHUB_WORKSPACE/esp-idf - git submodule update --init --recursive - ./install.sh - source export.sh - cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/ap_to_pppos - idf.py build - cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/modem_console - idf.py build - cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/pppos_client - idf.py build - - build_idf_v4_1: - name: build-with-IDF-4.1 - runs-on: ubuntu-latest - - steps: - - name: Checkout esp-protocols - uses: actions/checkout@master - with: - path: esp-protocols - - name: Checkout IDF - uses: actions/checkout@master - with: - repository: espressif/esp-idf - path: esp-idf - ref: release/v4.1 - - - name: Build-examples-with-IDF - run: | - cd $GITHUB_WORKSPACE/esp-idf - git submodule update --init --recursive - ./install.sh - source export.sh - cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/pppos_client + . ${IDF_PATH}/export.sh + cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/${{ matrix.examples }} idf.py build From 01e2a9c109ee7676e38cead6c724dd875af52246 Mon Sep 17 00:00:00 2001 From: David Cermak Date: Thu, 4 Nov 2021 11:41:11 +0100 Subject: [PATCH 5/6] Examples: Fix print format for http_client() API --- .../esp_modem/examples/modem_console/main/httpget_handle.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/components/esp_modem/examples/modem_console/main/httpget_handle.c b/components/esp_modem/examples/modem_console/main/httpget_handle.c index da15b75d9..71eb219c9 100644 --- a/components/esp_modem/examples/modem_console/main/httpget_handle.c +++ b/components/esp_modem/examples/modem_console/main/httpget_handle.c @@ -83,9 +83,9 @@ static int do_http_client(int argc, char **argv) esp_err_t err = esp_http_client_perform(client); if (err == ESP_OK) { - ESP_LOGI(TAG, "HTTP GET Status = %d, content_length = %d", - esp_http_client_get_status_code(client), - esp_http_client_get_content_length(client)); + uint64_t content_length = esp_http_client_get_content_length(client); + ESP_LOGI(TAG, "HTTP GET Status = %d, content_length = %lld", + esp_http_client_get_status_code(client), content_length); return 0; } ESP_LOGE(TAG, "HTTP GET request failed: %s", esp_err_to_name(err)); From 15a858b73552f26782ee965ec91e2d4f87740de4 Mon Sep 17 00:00:00 2001 From: David Cermak Date: Thu, 4 Nov 2021 13:21:47 +0100 Subject: [PATCH 6/6] CI: Move separate master job to the loop loop --- .github/workflows/build.yml | 60 ++++++++----------------------------- 1 file changed, 13 insertions(+), 47 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9c5830284..cfcb590a7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -3,68 +3,34 @@ name: Build on: [push, pull_request] jobs: - build_idf_master: - name: build-with-IDF-master - runs-on: ubuntu-latest - - steps: - - name: Checkout esp-protocols - uses: actions/checkout@master - with: - path: esp-protocols - - name: Checkout IDF - uses: actions/checkout@master - with: - repository: espressif/esp-idf - path: esp-idf - - - name: Build-examples-with-IDF - run: | - cd $GITHUB_WORKSPACE/esp-idf - git submodule update --init --recursive - ./install.sh - source export.sh - cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/simple_cmux_client - idf.py build - cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/ap_to_pppos - idf.py build - cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/modem_console - idf.py build - cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/pppos_client - idf.py build - build: strategy: matrix: - idf_ver: ["v4.1", "v4.2", "v4.3", "v4.4"] - examples: ["pppos_client", "modem_console", "ap_to_pppos", "simple_cmux_client"] + idf_ver: ["latest", "release-v4.1", "release-v4.2", "release-v4.3", "release-v4.4"] + example: ["pppos_client", "modem_console", "ap_to_pppos", "simple_cmux_client"] idf_target: ["esp32"] exclude: - - idf_ver: "v4.1" - examples: modem_console - - idf_ver: "v4.1" - examples: ap_to_pppos - - idf_ver: "v4.1" - examples: simple_cmux_client - - idf_ver: "v4.2" - examples: simple_cmux_client + - idf_ver: "release-v4.1" + example: modem_console + - idf_ver: "release-v4.1" + example: ap_to_pppos + - idf_ver: "release-v4.1" + example: simple_cmux_client + - idf_ver: "release-v4.2" + example: simple_cmux_client runs-on: ubuntu-20.04 - container: espressif/idf:release-${{ matrix.idf_ver }} + container: espressif/idf:${{ matrix.idf_ver }} steps: - - name: Checkout IDF - uses: actions/checkout@v1 - with: - submodules: recursive - name: Checkout esp-protocols uses: actions/checkout@master with: path: esp-protocols - - name: Build for ESP32 + - name: Build ${{ matrix.example }} with IDF-${{ matrix.idf_ver }} for ${{ matrix.idf_target }} env: IDF_TARGET: ${{ matrix.idf_target }} shell: bash run: | . ${IDF_PATH}/export.sh - cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/${{ matrix.examples }} + cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/${{ matrix.example }} idf.py build