Skip to content

[#2955] MQTT 5 support #4970

[#2955] MQTT 5 support

[#2955] MQTT 5 support #4970

Workflow file for this run

# Copyright (c) 2020 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0
#
# SPDX-License-Identifier: EPL-2.0
#
# This workflow will build all of Hono's components, run unit tests and create
# Docker images. Finally, the integration tests are run.
# The job uses a matrix for the distinct device registry implementations. Thus,
# for each registry implementation, the workflow is run on a separate VM.
name: Build and run integration tests
on: [push,pull_request]
jobs:
pre_job:
# continue-on-error: true # Uncomment once integration is finished
runs-on: ubuntu-latest
# Map a step output to a job output
outputs:
should_skip: ${{ steps.skip_check.outputs.should_skip }}
steps:
- id: skip_check
uses: fkirc/skip-duplicate-actions@v5
with:
# All of these options are optional, so you can remove them if you are happy with the defaults
cancel_others: 'true'
concurrent_skipping: 'same_content_newer'
skip_after_successful_duplicate: 'true'
paths_ignore: '["deploy/**", "legal/src/main/resources/legal/**", "site/**", "**/logo", "jenkins/**", "**/*.md"]'
do_not_skip: '["workflow_dispatch", "schedule"]'
build:
needs: pre_job
if: needs.pre_job.outputs.should_skip != 'true'
runs-on: ubuntu-latest
strategy:
matrix:
device-registry-name: [file,jdbc,mongodb-5.0,mongodb-6.0,mongodb-7.0]
include:
# Use Quarkus JVM images: file registry, AMQP messaging, Command Router with embedded cache
- device-registry-name: file
device-registry: file
commandrouting-cache: embedded
messaging-type: amqp
mongodb-image-name: mongo:6.0
# Use Quarkus JVM images: jdbc registry, Kafka messaging, Command Router with embedded cache
- device-registry-name: jdbc
device-registry: jdbc
commandrouting-cache: embedded
messaging-type: kafka
mongodb-image-name: mongo:6.0
# Use Quarkus JVM images: mongodb registry Kafka messaging, Command Router with data grid
- device-registry-name: mongodb-5.0
device-registry: mongodb
commandrouting-cache: server
messaging-type: kafka
mongodb-image-name: mongo:5.0
- device-registry-name: mongodb-6.0
device-registry: mongodb
commandrouting-cache: server
messaging-type: kafka
mongodb-image-name: mongo:6.0
- device-registry-name: mongodb-7.0
device-registry: mongodb
commandrouting-cache: server
messaging-type: kafka
mongodb-image-name: mongo:7.0
name: "Use ${{ matrix.device-registry-name }} registry, ${{ matrix.messaging-type }} messaging with ${{ matrix.commandrouting-cache }} cache"
steps:
- uses: actions/checkout@v4
- name: Set up Maven
uses: stCarolas/setup-maven@v5
with:
maven-version: 3.8.8
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "17"
cache: "maven"
- name: Build all components (incl. unit tests) and run integration tests
run: |
mvn clean verify -B -e -DcreateJavadoc=true -DCI=$CI \
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn \
-Dhono.deviceregistry.type=${{ matrix.device-registry }} \
-Dhono.messaging-infra.type=${{ matrix.messaging-type }} \
-Dhono.commandrouting.cache=${{ matrix.commandrouting-cache }} \
-Dmongodb-image.name=${{ matrix.mongodb-image-name }} \
-Pbuild-docker-image,jaeger,run-tests