Skip to content

Fix(mqttrust_core): Add feature flag to set max payload size (#55) #167

Fix(mqttrust_core): Add feature flag to set max payload size (#55)

Fix(mqttrust_core): Add feature flag to set max payload size (#55) #167

Workflow file for this run

name: CI
on:
push:
branches:
- master
pull_request:
jobs:
cancel_previous_runs:
name: Cancel previous runs
runs-on: ubuntu-latest
steps:
- uses: styfle/[email protected]
with:
access_token: ${{ secrets.GITHUB_TOKEN }}
test:
name: Test
runs-on: ubuntu-latest
steps:
- name: Checkout source code
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
target: thumbv7m-none-eabi
override: true
- name: Build
uses: actions-rs/cargo@v1
with:
command: build
args: --all --target thumbv7m-none-eabi
- name: Test
uses: actions-rs/cargo@v1
with:
command: test
args: --lib --features "log"
integration:
name: Integration Test
runs-on: ubuntu-latest
needs: test
steps:
- name: Checkout source code
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
target: thumbv7m-none-eabi
override: true
- name: Run integration test
uses: actions-rs/cargo@v1
with:
command: run
args: --features=log --example echo
# device_advisor:
# name: AWS IoT Device Advisor
# runs-on: ubuntu-latest
# needs: test
# env:
# AWS_EC2_METADATA_DISABLED: true
# AWS_DEFAULT_REGION: ${{ secrets.MGMT_AWS_DEFAULT_REGION }}
# AWS_ACCESS_KEY_ID: ${{ secrets.MGMT_AWS_ACCESS_KEY_ID }}
# AWS_SECRET_ACCESS_KEY: ${{ secrets.MGMT_AWS_SECRET_ACCESS_KEY }}
# SUITE_ID: greb3uy2wtq3
# THING_ARN: arn:aws:iot:eu-west-1:274906834921:thing/mqttrust
# CERTIFICATE_ARN: arn:aws:iot:eu-west-1:274906834921:cert/e7280d8d316b58da3058037a2c1730d9eb15de50e96f4d47e54ea655266b76db
# steps:
# - name: Checkout
# uses: actions/checkout@v1
# - name: Install Rust
# uses: actions-rs/toolchain@v1
# with:
# profile: minimal
# toolchain: stable
# override: true
# - name: Get AWS_HOSTNAME
# id: hostname
# run: |
# hostname=$(aws iotdeviceadvisor get-endpoint --output text --query endpoint)
# ret=$?
# echo "::set-output name=AWS_HOSTNAME::$hostname"
# exit $ret
# - name: Build test binary
# uses: actions-rs/cargo@v1
# env:
# AWS_HOSTNAME: ${{ steps.hostname.outputs.AWS_HOSTNAME }}
# with:
# command: build
# args: --features=log --example aws_device_advisor --release
# - name: Start test suite
# id: test_suite
# run: |
# suite_id=$(aws iotdeviceadvisor start-suite-run --suite-definition-id ${{ env.SUITE_ID }} --suite-run-configuration "primaryDevice={thingArn=${{ env.THING_ARN }},certificateArn=${{ env.CERTIFICATE_ARN }}}" --output text --query suiteRunId)
# ret=$?
# echo "::set-output name=SUITE_RUN_ID::$suite_id"
# exit $ret
# - name: Execute test binary
# id: binary
# env:
# DEVICE_ADVISOR_PASSWORD: ${{ secrets.DEVICE_ADVISOR_PASSWORD }}
# RUST_LOG: trace
# run: |
# nohup ./target/release/examples/aws_device_advisor > device_advisor_integration.log &
# echo "::set-output name=PID::$!"
# - name: Monitor test run
# run: |
# chmod +x ./.github/scripts/da_monitor.sh
# echo ${{ env.SUITE_ID }} ${{ steps.test_suite.outputs.SUITE_RUN_ID }} ${{ steps.binary.outputs.PID }}
# ./.github/scripts/da_monitor.sh ${{ env.SUITE_ID }} ${{ steps.test_suite.outputs.SUITE_RUN_ID }} ${{ steps.binary.outputs.PID }}
# - name: Kill test binary process
# if: ${{ always() }}
# run: kill ${{ steps.binary.outputs.PID }} || true
# - name: Log binary output
# if: ${{ always() }}
# run: cat device_advisor_integration.log
# - name: Stop test suite
# if: ${{ failure() }}
# run: aws iotdeviceadvisor stop-suite-run --suite-definition-id ${{ env.SUITE_ID }} --suite-run-id ${{ steps.test_suite.outputs.SUITE_RUN_ID }}
rustfmt:
name: rustfmt
runs-on: ubuntu-latest
steps:
- name: Checkout source code
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly
override: true
components: rustfmt
- name: Run rustfmt
uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check --verbose
# tomlfmt:
# name: tomlfmt
# runs-on: ubuntu-latest
# steps:
# - name: Checkout source code
# uses: actions/checkout@v2
# - name: Install Rust
# uses: actions-rs/toolchain@v1
# with:
# profile: minimal
# toolchain: nightly
# override: true
# - name: Install tomlfmt
# uses: actions-rs/[email protected]
# with:
# crate: cargo-tomlfmt
# version: latest
# use-tool-cache: true
# - name: Run Tomlfmt
# uses: actions-rs/cargo@v1
# with:
# command: tomlfmt
# args: --dryrun
clippy:
name: clippy
runs-on: ubuntu-latest
env:
CLIPPY_PARAMS: -W clippy::all -W clippy::pedantic -W clippy::nursery -W clippy::cargo
steps:
- name: Checkout source code
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
components: clippy
- name: Run clippy
uses: actions-rs/clippy-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
args: --features "log" -- ${{ env.CLIPPY_PARAMS }}
# grcov:
# name: Coverage
# runs-on: ubuntu-latest
# steps:
# - name: Checkout source code
# uses: actions/checkout@v2
# - name: Install Rust
# uses: actions-rs/toolchain@v1
# with:
# profile: minimal
# toolchain: nightly
# target: thumbv7m-none-eabi
# override: true
# - name: Install grcov
# uses: actions-rs/cargo@v1
# # uses: actions-rs/[email protected]
# with:
# # crate: grcov
# # version: latest
# # use-tool-cache: true
# command: install
# args: grcov --git https://github.com/mozilla/grcov
# - name: Test
# uses: actions-rs/cargo@v1
# with:
# command: test
# args: --lib --no-fail-fast --features "log"
# env:
# CARGO_INCREMENTAL: "0"
# RUSTFLAGS: "-Zprofile -Ccodegen-units=1 -Copt-level=0 -Coverflow-checks=off -Cpanic=unwind -Zpanic_abort_tests"
# RUSTDOCFLAGS: "-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Coverflow-checks=off -Cpanic=unwind -Zpanic_abort_tests"
# - name: Generate coverage data
# id: grcov
# # uses: actions-rs/[email protected]
# run: |
# grcov target/debug/ \
# --branch \
# --llvm \
# --source-dir . \
# --output-file lcov.info \
# --ignore='/**' \
# --ignore='C:/**' \
# --ignore='../**' \
# --ignore-not-existing \
# --excl-line "#\\[derive\\(" \
# --excl-br-line "(#\\[derive\\()|(debug_assert)" \
# --excl-start "#\\[cfg\\(test\\)\\]" \
# --excl-br-start "#\\[cfg\\(test\\)\\]" \
# --commit-sha ${{ github.sha }} \
# --service-job-id ${{ github.job }} \
# --service-name "GitHub Actions" \
# --service-number ${{ github.run_id }}
# - name: Upload coverage as artifact
# uses: actions/upload-artifact@v2
# with:
# name: lcov.info
# # path: ${{ steps.grcov.outputs.report }}
# path: lcov.info
# - name: Upload coverage to codecov.io
# uses: codecov/codecov-action@v1
# with:
# # file: ${{ steps.grcov.outputs.report }}
# file: lcov.info
# fail_ci_if_error: true
docs:
name: Documentation
runs-on: ubuntu-latest
steps:
- name: Checkout source code
uses: actions/checkout@v2
with:
persist-credentials: false
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly
override: true
- name: Build documentation
uses: actions-rs/cargo@v1
with:
command: doc
args: --verbose --no-deps
# - name: Finalize documentation
# run: |
# CRATE_NAME=$(echo '${{ github.repository }}' | tr '[:upper:]' '[:lower:]' | cut -f2 -d"/")
# echo "<meta http-equiv=\"refresh\" content=\"0; url=${CRATE_NAME/-/_}\">" > target/doc/index.html
# touch target/doc/.nojekyll
# - name: Upload as artifact
# uses: actions/upload-artifact@v2
# with:
# name: Documentation
# path: target/doc
# - name: Deploy
# uses: JamesIves/github-pages-deploy-action@releases/v3
# with:
# ACCESS_TOKEN: ${{ secrets.GH_PAT }}
# BRANCH: gh-pages
# FOLDER: target/doc