[mosq]: Add serverless broker example #276
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "mosq: build-tests" | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
types: [opened, synchronize, reopened, labeled] | |
jobs: | |
build_mosq: | |
if: contains(github.event.pull_request.labels.*.name, 'mosquitto') || github.event_name == 'push' | |
name: Mosquitto build | |
strategy: | |
matrix: | |
idf_ver: ["latest", "release-v5.3"] | |
runs-on: ubuntu-22.04 | |
container: espressif/idf:${{ matrix.idf_ver }} | |
env: | |
TEST_DIR: components/mosquitto/examples | |
TARGET_TEST: broker | |
TARGET_TEST_DIR: build_esp32_default | |
steps: | |
- name: Checkout esp-protocols | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Build with IDF-${{ matrix.idf_ver }} | |
shell: bash | |
run: | | |
. ${IDF_PATH}/export.sh | |
pip install idf-component-manager idf-build-apps --upgrade | |
python ci/build_apps.py -c ${TEST_DIR} -m components/mosquitto/.build-test-rules.yml | |
# upload only the target test artifacts | |
cd ${TEST_DIR}/${TARGET_TEST} | |
${GITHUB_WORKSPACE}/ci/clean_build_artifacts.sh `pwd`/${TARGET_TEST_DIR} | |
zip -qur artifacts.zip ${TARGET_TEST_DIR} | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: mosq_target_esp32_${{ matrix.idf_ver }} | |
path: ${{ env.TEST_DIR }}/${{ env.TARGET_TEST }}/artifacts.zip | |
if-no-files-found: error | |
test_mosq: | |
# Skip running on forks since it won't have access to secrets | |
if: | | |
github.repository == 'espressif/esp-protocols' && | |
( contains(github.event.pull_request.labels.*.name, 'mosquitto') || github.event_name == 'push' ) | |
name: Mosquitto target test | |
needs: build_mosq | |
strategy: | |
matrix: | |
idf_ver: ["latest", "release-v5.3"] | |
runs-on: | |
- self-hosted | |
- ESP32-ETHERNET-KIT | |
env: | |
TEST_DIR: components/mosquitto/examples/broker | |
TARGET_TEST_DIR: build_esp32_default | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: mosq_target_esp32_${{ matrix.idf_ver }} | |
path: ${{ env.TEST_DIR }}/ci/ | |
- name: Run Test | |
working-directory: ${{ env.TEST_DIR }} | |
run: | | |
python -m pip install pytest-embedded-serial-esp pytest-embedded-idf pytest-rerunfailures pytest-timeout pytest-ignore-test-results | |
unzip ci/artifacts.zip -d ci | |
for dir in `ls -d ci/build_*`; do | |
rm -rf build sdkconfig.defaults | |
mv $dir build | |
python -m pytest --log-cli-level DEBUG --junit-xml=./results_esp32_${{ matrix.idf_ver }}_${dir#"ci/build_"}.xml --target=esp32 | |
done |