[#2955] MQTT 5 support #4974
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
# 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 |