Skip to content

Check examples MQTT

Check examples MQTT #7

# This file is part of Astarte.
#
# Copyright 2024 SECO Mind Srl
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# SPDX-License-Identifier: Apache-2.0
name: Check examples MQTT
on: [pull_request, create]
env:
PB_REL: /~https://github.com/protocolbuffers/protobuf/releases
jobs:
check-examples-mqtt:
runs-on: ubuntu-latest
concurrency:
group: check-examples-mqtt-${{ github.ref }}
cancel-in-progress: true
timeout-minutes: 30
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Set up Python 3.12
uses: actions/setup-python@v4
with:
python-version: "3.12"
- name: Create Astarte Cluster
id: astarte
uses: astarte-platform/astarte-cluster-action@v1
with:
astarte_version: "1.1.1"
- name: Install interfaces
run: |
astartectl realm-management interfaces sync $GITHUB_WORKSPACE/examples/datastreams/interfaces/*.json --non-interactive
astartectl realm-management interfaces sync $GITHUB_WORKSPACE/examples/event_listener/interfaces/*.json --non-interactive
astartectl realm-management interfaces sync $GITHUB_WORKSPACE/examples/example_device/interfaces/*.json --non-interactive
astartectl realm-management interfaces ls
- name: Setup the configuration file for the datastream example
working-directory: ./examples/datastreams
run: |
echo "REALM = \"test\"" > config.toml
echo "PAIRING_URL = \"https://api.autotest.astarte-platform.org/pairing\"" >> config.toml
DEVICE_ID=$(astartectl utils device-id generate-random)
echo "DEVICE_ID = \"$DEVICE_ID\"" >> config.toml
CREDENTIALS_SECRET=$(astartectl pairing agent register --compact-output -- "$DEVICE_ID")
echo "CREDENTIALS_SECRET = \"$CREDENTIALS_SECRET\"" >> config.toml
cat config.toml
- name: Setup the configuration file for the event_listener example
working-directory: ./examples/event_listener
run: |
echo "REALM = \"test\"" > config.toml
echo "PAIRING_URL = \"https://api.autotest.astarte-platform.org/pairing\"" >> config.toml
DEVICE_ID=$(astartectl utils device-id generate-random)
echo "DEVICE_ID = \"$DEVICE_ID\"" >> config.toml
CREDENTIALS_SECRET=$(astartectl pairing agent register --compact-output -- "$DEVICE_ID")
echo "CREDENTIALS_SECRET = \"$CREDENTIALS_SECRET\"" >> config.toml
cat config.toml
- name: Setup the configuration file for the example device example
working-directory: ./examples/example_device
run: |
echo "REALM = \"test\"" > config.toml
echo "PAIRING_URL = \"https://api.autotest.astarte-platform.org/pairing\"" >> config.toml
DEVICE_ID=$(astartectl utils device-id generate-random)
echo "DEVICE_ID = \"$DEVICE_ID\"" >> config.toml
CREDENTIALS_SECRET=$(astartectl pairing agent register --compact-output -- "$DEVICE_ID")
echo "CREDENTIALS_SECRET = \"$CREDENTIALS_SECRET\"" >> config.toml
cat config.toml
- name: Install the Astarte device Python module
run: |
python3 -m pip install --upgrade pip
python3 -m pip install -e .
- name: Execute the datastream example
working-directory: ./examples/datastreams
run: |
export REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
python3 ./main.py -d 10
- name: Execute the event_listener example
working-directory: ./examples/event_listener
run: |
export REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
python3 ./event_listener.py -d 10
- name: Execute the example_device example
working-directory: ./examples/example_device
run: |
export REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
python3 ./example_device.py -d 10