mirror of
https://github.com/espressif/esp-mqtt.git
synced 2025-05-17 23:25:58 +08:00
fix: Adds all IDF versions under support
This commit is contained in:
201
.gitlab-ci.yml
201
.gitlab-ci.yml
@ -1,118 +1,129 @@
|
|||||||
stages:
|
stages:
|
||||||
- build
|
- build
|
||||||
- test
|
- test
|
||||||
- deploy
|
- deploy
|
||||||
|
|
||||||
|
|
||||||
variables:
|
variables:
|
||||||
IDF_REPO: ${GITLAB_SSH_SERVER}/idf/esp-idf.git
|
IDF_REPO: ${GITLAB_SSH_SERVER}/idf/esp-idf.git
|
||||||
|
|
||||||
.add_gh_key_remote: &add_gh_key_remote |
|
.add_gh_key_remote: &add_gh_key_remote |
|
||||||
cit_add_ssh_key "${GH_PUSH_KEY}"
|
cit_add_ssh_key "${GH_PUSH_KEY}"
|
||||||
git remote remove github || true
|
git remote remove github || true
|
||||||
git remote add github ${GH_PUSH_REPO}
|
git remote add github ${GH_PUSH_REPO}
|
||||||
|
|
||||||
before_script:
|
before_script:
|
||||||
# Use CI Tools
|
# Use CI Tools
|
||||||
- curl -sSL ${CIT_LOADER_URL} | sh
|
- curl -sSL ${CIT_LOADER_URL} | sh
|
||||||
- source citools/import_functions
|
- source citools/import_functions
|
||||||
# Add gitlab ssh key
|
# Add gitlab ssh key
|
||||||
- mkdir -p ~/.ssh
|
- mkdir -p ~/.ssh
|
||||||
- chmod 700 ~/.ssh
|
- chmod 700 ~/.ssh
|
||||||
- echo -n $GITLAB_KEY > ~/.ssh/id_rsa_base64
|
- echo -n $GITLAB_KEY > ~/.ssh/id_rsa_base64
|
||||||
- base64 --decode --ignore-garbage ~/.ssh/id_rsa_base64 > ~/.ssh/id_rsa
|
- base64 --decode --ignore-garbage ~/.ssh/id_rsa_base64 > ~/.ssh/id_rsa
|
||||||
- chmod 600 ~/.ssh/id_rsa
|
- chmod 600 ~/.ssh/id_rsa
|
||||||
- echo -e "Host gitlab.espressif.cn\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
|
- echo -e "Host gitlab.espressif.cn\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
|
||||||
- PATH=$CI_PROJECT_DIR/esp-idf/tools:$PATH
|
- PATH=$CI_PROJECT_DIR/esp-idf/tools:$PATH
|
||||||
- export MQTT_PATH=$CI_PROJECT_DIR
|
- export MQTT_PATH=$CI_PROJECT_DIR
|
||||||
|
|
||||||
.build_template:
|
.build_template:
|
||||||
stage: build
|
stage: build
|
||||||
tags:
|
tags:
|
||||||
- build
|
- build
|
||||||
- internet
|
- internet
|
||||||
script:
|
script:
|
||||||
# Replace the IDF's default esp-mqtt with this version
|
# Replace the IDF's default esp-mqtt with this version
|
||||||
- rm -rf $IDF_PATH/components/mqtt/esp-mqtt && cp -r $MQTT_PATH $IDF_PATH/components/mqtt/
|
- rm -rf $IDF_PATH/components/mqtt/esp-mqtt && cp -r $MQTT_PATH $IDF_PATH/components/mqtt/
|
||||||
# Build the examples
|
# Build the examples
|
||||||
- $MQTT_PATH/ci/build_examples.sh
|
- $MQTT_PATH/ci/build_examples.sh
|
||||||
|
|
||||||
build_idf_v5.0:
|
build_idf_v5.0:
|
||||||
extends: .build_template
|
extends: .build_template
|
||||||
image: espressif/idf:release-v5.0
|
image: espressif/idf:release-v5.0
|
||||||
|
|
||||||
build_idf_v5.1:
|
build_idf_v5.1:
|
||||||
extends: .build_template
|
extends: .build_template
|
||||||
image: espressif/idf:release-v5.1
|
image: espressif/idf:release-v5.1
|
||||||
|
|
||||||
|
build_idf_v5.2:
|
||||||
|
extends: .build_template
|
||||||
|
image: espressif/idf:release-v5.2
|
||||||
|
|
||||||
|
build_idf_v5.3:
|
||||||
|
extends: .build_template
|
||||||
|
image: espressif/idf:release-v5.3
|
||||||
|
|
||||||
|
build_idf_v5.4:
|
||||||
|
extends: .build_template
|
||||||
|
image: espressif/idf:release-v5.4
|
||||||
|
|
||||||
build_idf_latest:
|
build_idf_latest:
|
||||||
extends: .build_template
|
extends: .build_template
|
||||||
image: espressif/idf:latest
|
image: espressif/idf:latest
|
||||||
|
|
||||||
build_and_host_test:
|
build_and_host_test:
|
||||||
stage: build
|
stage: build
|
||||||
image: espressif/idf:latest
|
image: espressif/idf:latest
|
||||||
script:
|
script:
|
||||||
# Replace the IDF's default esp-mqtt with this version
|
# Replace the IDF's default esp-mqtt with this version
|
||||||
- rm -rf $IDF_PATH/components/mqtt/esp-mqtt && cp -r $MQTT_PATH $IDF_PATH/components/mqtt/
|
- rm -rf $IDF_PATH/components/mqtt/esp-mqtt && cp -r $MQTT_PATH $IDF_PATH/components/mqtt/
|
||||||
- cd $IDF_PATH/components/mqtt/esp-mqtt/host_test
|
- cd $IDF_PATH/components/mqtt/esp-mqtt/host_test
|
||||||
- idf.py build
|
- idf.py build
|
||||||
- build/host_mqtt_client_test.elf
|
- build/host_mqtt_client_test.elf
|
||||||
|
|
||||||
build_and_test_qemu:
|
build_and_test_qemu:
|
||||||
stage: build
|
stage: build
|
||||||
image: ${CI_DOCKER_REGISTRY}/qemu-v5.1:1-20220802
|
image: ${CI_DOCKER_REGISTRY}/qemu-v5.1:1-20220802
|
||||||
tags:
|
tags:
|
||||||
- build
|
- build
|
||||||
- shiny
|
- shiny
|
||||||
dependencies: []
|
dependencies: []
|
||||||
script:
|
script:
|
||||||
- export IDF_PATH=$CI_PROJECT_DIR/esp-idf
|
- export IDF_PATH=$CI_PROJECT_DIR/esp-idf
|
||||||
- git clone "${IDF_REPO}"
|
- git clone "${IDF_REPO}"
|
||||||
# switch to IDF and setup the tools
|
# switch to IDF and setup the tools
|
||||||
- $MQTT_PATH/ci/set_idf.sh release/v5.1
|
- $MQTT_PATH/ci/set_idf.sh release/v5.1
|
||||||
- $IDF_PATH/tools/idf_tools.py install-python-env
|
- $IDF_PATH/tools/idf_tools.py install-python-env
|
||||||
- cd $IDF_PATH && tools/idf_tools.py --non-interactive install && eval "$(tools/idf_tools.py --non-interactive export)"
|
- cd $IDF_PATH && tools/idf_tools.py --non-interactive install && eval "$(tools/idf_tools.py --non-interactive export)"
|
||||||
# Remove `debug_backend` and Add `paho-mqtt` to the required packages
|
# Remove `debug_backend` and Add `paho-mqtt` to the required packages
|
||||||
- sed '/debug_backend/d;/pygobject/d' $IDF_PATH/tools/requirements/requirements.ttfw.txt > requirements.txt
|
- sed '/debug_backend/d;/pygobject/d' $IDF_PATH/tools/requirements/requirements.ttfw.txt > requirements.txt
|
||||||
- python -m pip install -r requirements.txt
|
- python -m pip install -r requirements.txt
|
||||||
- python -m pip install paho-mqtt
|
- python -m pip install paho-mqtt
|
||||||
- $MQTT_PATH/ci/set_mqtt.sh $CI_COMMIT_SHA
|
- $MQTT_PATH/ci/set_mqtt.sh $CI_COMMIT_SHA
|
||||||
# build publish-connect stress test, setup test parameters
|
# build publish-connect stress test, setup test parameters
|
||||||
- cd tools/test_apps/protocols/mqtt/publish_connect_test && cat sdkconfig.qemu | $IDF_PATH/tools/ci/envsubst.py > sdkconfig.defaults && idf.py build
|
- cd tools/test_apps/protocols/mqtt/publish_connect_test && cat sdkconfig.qemu | $IDF_PATH/tools/ci/envsubst.py > sdkconfig.defaults && idf.py build
|
||||||
- export TEST_PATH=`pwd` && export MQTT_PUBLISH_TEST=1
|
- export TEST_PATH=`pwd` && export MQTT_PUBLISH_TEST=1
|
||||||
- export PYTHONPATH="$IDF_PATH/tools:$IDF_PATH/tools/ci/python_packages"
|
- export PYTHONPATH="$IDF_PATH/tools:$IDF_PATH/tools/ci/python_packages"
|
||||||
# run test (with environment->qemu)
|
# run test (with environment->qemu)
|
||||||
- cd $IDF_PATH/tools/ci/python_packages/tiny_test_fw/bin
|
- cd $IDF_PATH/tools/ci/python_packages/tiny_test_fw/bin
|
||||||
# use more relaxed criteria with QEMU tests
|
# use more relaxed criteria with QEMU tests
|
||||||
- export MQTT_PUBLISH_MSG_len_0=0 MQTT_PUBLISH_MSG_repeat_0=5
|
- export MQTT_PUBLISH_MSG_len_0=0 MQTT_PUBLISH_MSG_repeat_0=5
|
||||||
- export MQTT_PUBLISH_MSG_len_1=2 MQTT_PUBLISH_MSG_repeat_1=50
|
- export MQTT_PUBLISH_MSG_len_1=2 MQTT_PUBLISH_MSG_repeat_1=50
|
||||||
- export MQTT_PUBLISH_MSG_len_2=128 MQTT_PUBLISH_MSG_repeat_2=2
|
- export MQTT_PUBLISH_MSG_len_2=128 MQTT_PUBLISH_MSG_repeat_2=2
|
||||||
- export MQTT_PUBLISH_MSG_len_3=20 MQTT_PUBLISH_MSG_repeat_3=20
|
- export MQTT_PUBLISH_MSG_len_3=20 MQTT_PUBLISH_MSG_repeat_3=20
|
||||||
- python Runner.py $TEST_PATH -c $MQTT_PATH/ci/publish_connect_mqtt_qemu.yml -e $TEST_PATH/env.yml
|
- python Runner.py $TEST_PATH -c $MQTT_PATH/ci/publish_connect_mqtt_qemu.yml -e $TEST_PATH/env.yml
|
||||||
|
|
||||||
check_remotes_sync:
|
check_remotes_sync:
|
||||||
stage: test
|
stage: test
|
||||||
except:
|
except:
|
||||||
- master
|
- master
|
||||||
- idf
|
- idf
|
||||||
script:
|
script:
|
||||||
- *add_gh_key_remote
|
- *add_gh_key_remote
|
||||||
- git fetch --depth=1 origin master
|
- git fetch --depth=1 origin master
|
||||||
- git fetch --depth=1 github master
|
- git fetch --depth=1 github master
|
||||||
- test "$(git rev-parse origin/master)" == "$(git rev-parse github/master)"
|
- test "$(git rev-parse origin/master)" == "$(git rev-parse github/master)"
|
||||||
|
|
||||||
push_master_to_github:
|
push_master_to_github:
|
||||||
stage: deploy
|
stage: deploy
|
||||||
image: ${CI_DOCKER_REGISTRY}/esp32-ci-env
|
image: ${CI_DOCKER_REGISTRY}/esp32-ci-env
|
||||||
tags:
|
tags:
|
||||||
- build
|
- build
|
||||||
only:
|
only:
|
||||||
- master
|
- master
|
||||||
- idf
|
- idf
|
||||||
when: on_success
|
when: on_success
|
||||||
variables:
|
variables:
|
||||||
GIT_STRATEGY: clone
|
GIT_STRATEGY: clone
|
||||||
script:
|
script:
|
||||||
- *add_gh_key_remote
|
- *add_gh_key_remote
|
||||||
- git push github HEAD:${CI_COMMIT_REF_NAME}
|
- git push github HEAD:${CI_COMMIT_REF_NAME}
|
||||||
|
Reference in New Issue
Block a user