Implement Message Queue Limit to Prevent Memory Exhaustion in Embedded Devices #2318
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
# This workflow uses actions that are not certified by GitHub. | |
# They are provided by a third-party and are governed by | |
# separate terms of service, privacy policy, and support | |
# documentation. | |
name: Run plgd/device tests with cloud_server | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: ${{ github.ref_name != 'master' }} | |
on: | |
# Triggers the workflow on push or pull request events but only for the master branch | |
push: | |
branches: [master] | |
pull_request: | |
branches: [master] | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
inputs: | |
build_type: | |
description: "Type of the build" | |
type: string | |
default: "Debug" | |
cert_signature_algorithm: | |
type: choice | |
description: Signature algorithm used in generated certificates | |
options: | |
- ECDSA-SHA256 | |
- ECDSA-SHA384 | |
# - ECDSA-SHA512 | |
default: ECDSA-SHA256 | |
cert_elliptic_curve: | |
type: choice | |
description: Elliptic curve used to generate keys in certificates | |
options: | |
- P256 | |
- P384 | |
# - P521 | |
default: P256 | |
jobs: | |
plgd-device-test: | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- name: cloud-server | |
# same configuration as "cloud-server" in the SonarCloud scan job, skip for events that trigger both jobs | |
skip: ${{ github.event_name != 'workflow_dispatch' }} | |
args: "" | |
- name: cloud-server-asan | |
args: "-DOC_ASAN_ENABLED=ON" | |
- name: cloud-server-tsan | |
args: "-DOC_TSAN_ENABLED=ON" | |
# GCC thread-sanitizer keeps reporting false positives, so we use clang instead for tests with thread-sanitizer | |
docker_file: docker/apps/Dockerfile.cloud-server-debug-clang | |
- name: cloud-server-access-in-RFOTM | |
args: "-DOC_RESOURCE_ACCESS_IN_RFOTM_ENABLED=ON" | |
- name: cloud-server-asan-access-in-RFOTM | |
args: "-DOC_ASAN_ENABLED=ON -DOC_RESOURCE_ACCESS_IN_RFOTM_ENABLED=ON" | |
- name: cloud-server-tsan-access-in-RFOTM | |
args: "-DOC_TSAN_ENABLED=ON -DOC_RESOURCE_ACCESS_IN_RFOTM_ENABLED=ON" | |
docker_file: docker/apps/Dockerfile.cloud-server-debug-clang | |
- name: cloud-server-access-in-RFOTM-concurrent-requests-1 | |
# same configuration as " cloud-server-access-in-RFOTM-concurrent-requests-1" in the SonarCloud scan job, skip for events that trigger both jobs | |
skip: ${{ github.event_name != 'workflow_dispatch' }} | |
args: "-DOC_RESOURCE_ACCESS_IN_RFOTM_ENABLED=ON -DOC_DEVICE_MAX_NUM_CONCURRENT_REQUESTS=1" | |
- name: cloud-server-discovery-resource-observable | |
args: "-DOC_DISCOVERY_RESOURCE_OBSERVABLE_ENABLED=ON" | |
- name: cloud-server-discovery-resource-observable-asan | |
args: "-DOC_DISCOVERY_RESOURCE_OBSERVABLE_ENABLED=ON -DOC_ASAN_ENABLED=ON" | |
- name: cloud-server-discovery-resource-observable-tsan | |
args: "-DOC_DISCOVERY_RESOURCE_OBSERVABLE_ENABLED=ON -DOC_TSAN_ENABLED=ON" | |
docker_file: docker/apps/Dockerfile.cloud-server-debug-clang | |
- name: cloud-server-discovery-resource-observable-access-in-RFOTM | |
args: "-DOC_DISCOVERY_RESOURCE_OBSERVABLE_ENABLED=ON -DOC_RESOURCE_ACCESS_IN_RFOTM_ENABLED=ON" | |
- name: cloud-server-discovery-resource-observable-asan-access-in-RFOTM | |
args: "-DOC_DISCOVERY_RESOURCE_OBSERVABLE_ENABLED=ON -DOC_ASAN_ENABLED=ON -DOC_RESOURCE_ACCESS_IN_RFOTM_ENABLED=ON" | |
- name: cloud-server-discovery-resource-observable-tsan-access-in-RFOTM | |
args: "-DOC_DISCOVERY_RESOURCE_OBSERVABLE_ENABLED=ON -DOC_TSAN_ENABLED=ON -DOC_RESOURCE_ACCESS_IN_RFOTM_ENABLED=ON" | |
docker_file: docker/apps/Dockerfile.cloud-server-debug-clang | |
- name: cloud-server-rep-realloc | |
args: "-DOC_REPRESENTATION_REALLOC_ENCODING_ENABLED=ON" | |
- name: cloud-server-rep-realloc-asan | |
args: "-DOC_REPRESENTATION_REALLOC_ENCODING_ENABLED=ON -DOC_ASAN_ENABLED=ON" | |
- name: cloud-server-rep-realloc-tsan | |
args: "-DOC_REPRESENTATION_REALLOC_ENCODING_ENABLED=ON -DOC_TSAN_ENABLED=ON" | |
docker_file: docker/apps/Dockerfile.cloud-server-debug-clang | |
- name: cloud-server-discovery-resource-observable-access-in-RFOTM-rep-realloc | |
# same configuration as "cloud-server-discovery-resource-observable-access-in-RFOTM-rep-realloc" in the SonarCloud scan job, skip for events that trigger both jobs | |
skip: ${{ github.event_name != 'workflow_dispatch' }} | |
args: "-DOC_DISCOVERY_RESOURCE_OBSERVABLE_ENABLED=ON -DOC_RESOURCE_ACCESS_IN_RFOTM_ENABLED=ON -DOC_REPRESENTATION_REALLOC_ENCODING_ENABLED=ON" | |
- name: cloud-server-discovery-resource-observable-access-in-RFOTM-rep-realloc-asan | |
args: "-DOC_DISCOVERY_RESOURCE_OBSERVABLE_ENABLED=ON -DOC_RESOURCE_ACCESS_IN_RFOTM_ENABLED=ON -DOC_REPRESENTATION_REALLOC_ENCODING_ENABLED=ON -DOC_ASAN_ENABLED=ON" | |
- name: cloud-server-discovery-resource-observable-access-in-RFOTM-rep-realloc-tsan | |
args: "-DOC_DISCOVERY_RESOURCE_OBSERVABLE_ENABLED=ON -DOC_RESOURCE_ACCESS_IN_RFOTM_ENABLED=ON -DOC_REPRESENTATION_REALLOC_ENCODING_ENABLED=ON -DOC_TSAN_ENABLED=ON" | |
docker_file: docker/apps/Dockerfile.cloud-server-debug-clang | |
- name: cloud-server-release-discovery-resource-observable-access-in-RFOTM-rep-realloc | |
args: "-DOC_DEBUG_ENABLED=OFF -DOC_DISCOVERY_RESOURCE_OBSERVABLE_ENABLED=ON -DOC_RESOURCE_ACCESS_IN_RFOTM_ENABLED=ON -DOC_REPRESENTATION_REALLOC_ENCODING_ENABLED=ON" | |
build_type: Release | |
docker_file: docker/apps/Dockerfile.cloud-server | |
uses: ./.github/workflows/plgd-device-test-with-cfg.yml | |
with: | |
name: ${{ matrix.name }} | |
build_args: -DOC_DEBUG_ENABLED=ON -DOC_COLLECTIONS_IF_CREATE_ENABLED=ON -DOC_MNT_ENABLED=ON -DOC_OSCORE_ENABLED=OFF -DPLGD_DEV_TIME_ENABLED=ON -DOC_ETAG_ENABLED=ON -DOC_SOFTWARE_UPDATE_ENABLED=ON ${{ matrix.args }} | |
build_type: ${{ (github.event_name == 'workflow_dispatch' && inputs.build_type) || (matrix.build_type || 'Debug') }} | |
cert_signature_algorithm: ${{ (github.event_name == 'workflow_dispatch' && inputs.cert_signature_algorithm) || 'ECDSA-SHA256' }} | |
cert_elliptic_curve: ${{ (github.event_name == 'workflow_dispatch' && inputs.cert_elliptic_curve) || 'P256' }} | |
docker_file: ${{ matrix.docker_file || 'docker/apps/Dockerfile.cloud-server-debug' }} | |
skip: ${{ matrix.skip || false }} |