ci: Enable build of espressif port for supported chips

Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
diff --git a/.github/workflows/espressif.yaml b/.github/workflows/espressif.yaml
new file mode 100644
index 0000000..2df4de2
--- /dev/null
+++ b/.github/workflows/espressif.yaml
@@ -0,0 +1,41 @@
+# SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD
+# SPDX-License-Identifier: Apache-2.0
+
+# For development, trigger this on any push.
+on:
+  push:
+    branches:
+      - main
+  pull_request:
+
+name: Espressif
+
+jobs:
+  environment:
+    strategy:
+      matrix:
+        targets: [esp32, esp32s2, esp32c3]
+    runs-on: ubuntu-latest
+    env:
+      MCUBOOT_TARGET: ${{ matrix.targets }}
+    steps:
+    - uses: actions/checkout@v2
+      with:
+        fetch-depth: 0
+        submodules: recursive
+    - name: Print the environment
+      run: |
+        uname -a
+        lscpu
+        free
+        pwd
+    - name: Signed commit check
+      if: ${{ github.event_name == 'pull_request' }}
+      run: |
+        ./ci/check-signed-off-by.sh
+    - name: Espressif install
+      run: |
+        ./ci/espressif_install.sh
+    - name: Espressif run
+      run: |
+        ./ci/espressif_run.sh
diff --git a/ci/espressif_install.sh b/ci/espressif_install.sh
new file mode 100755
index 0000000..2528968
--- /dev/null
+++ b/ci/espressif_install.sh
@@ -0,0 +1,16 @@
+#!/usr/bin/env bash
+# SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD
+# SPDX-License-Identifier: Apache-2.0
+
+SCRIPT_ROOTDIR=$(dirname "$(realpath "${BASH_SOURCE[0]}")")
+MCUBOOT_ROOTDIR=$(realpath "${SCRIPT_ROOTDIR}/..")
+ESPRESSIF_ROOT="${MCUBOOT_ROOTDIR}/boot/espressif"
+IDF_PATH="${ESPRESSIF_ROOT}/hal/esp-idf"
+
+set -eo pipefail
+
+install_idf() {
+    "${IDF_PATH}"/install.sh
+}
+
+install_idf
diff --git a/ci/espressif_run.sh b/ci/espressif_run.sh
new file mode 100755
index 0000000..8f136c1
--- /dev/null
+++ b/ci/espressif_run.sh
@@ -0,0 +1,34 @@
+#!/usr/bin/env bash
+# SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD
+# SPDX-License-Identifier: Apache-2.0
+
+SCRIPT_ROOTDIR=$(dirname "$(realpath "${BASH_SOURCE[0]}")")
+MCUBOOT_ROOTDIR=$(realpath "${SCRIPT_ROOTDIR}/..")
+ESPRESSIF_ROOT="${MCUBOOT_ROOTDIR}/boot/espressif"
+IDF_PATH="${ESPRESSIF_ROOT}/hal/esp-idf"
+
+set -eo pipefail
+
+build_mcuboot() {
+  local target=${MCUBOOT_TARGET}
+  local build_dir=".build-${target}"
+  local toolchain_file="${ESPRESSIF_ROOT}/tools/toolchain-${target}.cmake"
+  local mcuboot_config="${ESPRESSIF_ROOT}/bootloader.conf"
+
+  # Prepare the environment for ESP-IDF
+
+  . "${IDF_PATH}"/export.sh
+
+  # Build MCUboot for selected target
+
+  cd "${MCUBOOT_ROOTDIR}" &>/dev/null
+  cmake -DCMAKE_TOOLCHAIN_FILE="${toolchain_file}"  \
+        -DMCUBOOT_TARGET="${target}"                \
+        -DMCUBOOT_CONFIG_FILE="${mcuboot_config}"   \
+        -DIDF_PATH="${IDF_PATH}"                    \
+        -B "${build_dir}"                           \
+        "${ESPRESSIF_ROOT}"
+  cmake --build "${build_dir}"/
+}
+
+build_mcuboot