Skip to content

Commit

Permalink
INFRA - GitHub Actions CI (#9)
Browse files Browse the repository at this point in the history
Co-authored-by: Kshitij Sharma <kshitij4sharma@gmail.com>
Co-authored-by: Kshitij Sharma <s2155899@ed.ac.uk>
  • Loading branch information
3 people authored Sep 18, 2024
1 parent 0f1da38 commit 58b6f19
Show file tree
Hide file tree
Showing 5 changed files with 86 additions and 7 deletions.
24 changes: 24 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# https://doc.rust-lang.org/cargo/guide/continuous-integration.html

name: Cargo Build & Test

on: push

env:
CARGO_TERM_COLOR: always

jobs:
build_and_test:
name: Cargo Build & Test
runs-on: ubuntu-latest
strategy:
matrix:
toolchain:
- stable
- beta
- nightly
steps:
- uses: actions/checkout@v4
- run: rustup update ${{ matrix.toolchain }} && rustup default ${{ matrix.toolchain }}
- run: cargo build --verbose
- run: cargo test --verbose
53 changes: 53 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: Linter

on: push

jobs:
rust-clippy:
name: Run clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run clippy
run: cargo clippy --all-targets --all-features -- -D warnings

rust-fmt:
name: Run rustfmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run rustfmt
run: cargo fmt --all -- --check

typos:
name: Spell check with typos
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run typos
uses: crate-ci/typos@master

find-todos-fixme:
name: Find todos and fixmes
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run todo check
run: |
if grep -riE -n 'TODO|FIXME' * | grep -v -i 'TODOLater'; then
exit 1
else
echo "All good"
fi
check-no-crlf:
name: Check no crlf line endings
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run check for CRLF line endings
run: |
if git ls-files --eol | grep crlf; then
echo "[ERROR] found CRLF line endings, install dos2unix and run 'find . -type f -exec dos2unix {} \;' to fix"
exit 1
fi
2 changes: 2 additions & 0 deletions .rustfmt.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
reorder_imports = true
imports_granularity = "Crate"
8 changes: 4 additions & 4 deletions config/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
use serde::{Deserialize, Serialize};
use serde_yml;
use std::collections::HashMap;

#[derive(Debug, Serialize, Deserialize, PartialEq)]
Expand Down Expand Up @@ -47,7 +46,7 @@ pub struct PodConfig {

impl PodConfig {
fn new(raw_config: &str) -> Result<Self, serde_yml::Error> {
let config = match serde_yml::from_str::<PodConfig>(&raw_config) {
let config = match serde_yml::from_str::<PodConfig>(raw_config) {
Ok(mut config) => {
config.pod_ids = config.pods.keys().cloned().collect();
Ok(config)
Expand Down Expand Up @@ -142,9 +141,10 @@ mod tests {
min: -150
max: 150
"#;
let mut config = PodConfig::new(raw_config).unwrap();
let config = PodConfig::new(raw_config).unwrap();
assert!(config.pod_ids.len() == 2);
assert!(config.pod_ids.sort() == vec!["pod_1", "pod_2"].sort());
assert!(config.pod_ids[0] == "pod_1" || config.pod_ids[1] == "pod_1");
assert!(config.pod_ids[0] == "pod_2" || config.pod_ids[1] == "pod_2");
let pod1 = config.pods.get("pod_1").unwrap();
let pod2 = config.pods.get("pod_2").unwrap();
assert_eq!(pod1.name, "Pod 1");
Expand Down
6 changes: 3 additions & 3 deletions lib/core/src/mqtt.rs
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ impl<'a> HypedMqttClient<'a, TcpSocket<'a>, CountingRng> {
}

/// Initialise the MQTT client configuration with the given client ID
pub fn initialise_mqtt_config<'a>(client_id: &'a str) -> ClientConfig<'a, 5, CountingRng> {
pub fn initialise_mqtt_config(client_id: &str) -> ClientConfig<'_, 5, CountingRng> {
let mut config = ClientConfig::new(
rust_mqtt::client::client_config::MqttVersion::MQTTv5,
CountingRng(20000),
Expand Down Expand Up @@ -119,11 +119,11 @@ impl<'a, T: embedded_io_async::Read + embedded_io_async::Write, R: rand_core::Rn
Err(mqtt_error) => match mqtt_error {
ReasonCode::NetworkError => {
info!("MQTT Network Error");
return Err(ReasonCode::NetworkError);
Err(ReasonCode::NetworkError)
}
_ => {
warn!("Other MQTT Error: {:?}", mqtt_error);
return Err(mqtt_error);
Err(mqtt_error)
}
},
}
Expand Down

0 comments on commit 58b6f19

Please sign in to comment.