Add clippy to CI
This commit is contained in:
parent
3ec4d1c125
commit
b90edd72a6
3 changed files with 54 additions and 35 deletions
10
.github/workflows/build_and_test.yml
vendored
10
.github/workflows/build_and_test.yml
vendored
|
@ -20,6 +20,16 @@ env:
|
|||
CARGO_TERM_COLOR: always
|
||||
|
||||
jobs:
|
||||
clippy:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- run: rustup component add clippy
|
||||
- uses: actions-rs/clippy-check@v1
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
args: --all-features
|
||||
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
|
|
@ -21,8 +21,7 @@
|
|||
#
|
||||
# Default values are commented out.
|
||||
|
||||
# The size in mebibytes of the cache
|
||||
# You can use megabytes instead in a pinch,
|
||||
# The size in mebibytes of the cache You can use megabytes instead in a pinch,
|
||||
# but just know the two are **NOT** the same.
|
||||
max_cache_size_in_mebibytes: 0
|
||||
|
||||
|
@ -34,7 +33,7 @@ server_settings:
|
|||
# port: 443
|
||||
|
||||
# This controls the value the server receives for your upload speed.
|
||||
external_max_kilobits_per_second: 0
|
||||
external_max_kilobits_per_second: 1
|
||||
|
||||
#
|
||||
# Advanced settings
|
||||
|
|
|
@ -178,28 +178,6 @@ impl Config {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
struct YamlArgs {
|
||||
// Naming is legacy
|
||||
max_cache_size_in_mebibytes: Mebibytes,
|
||||
server_settings: YamlServerSettings,
|
||||
// This implementation custom options
|
||||
extended_options: Option<YamlExtendedOptions>,
|
||||
}
|
||||
|
||||
// Naming is legacy
|
||||
#[derive(Deserialize)]
|
||||
struct YamlServerSettings {
|
||||
secret: ClientSecret,
|
||||
#[serde(default)]
|
||||
port: Port,
|
||||
external_max_kilobits_per_second: KilobitsPerSecond,
|
||||
external_port: Option<Port>,
|
||||
graceful_shutdown_wait_seconds: Option<NonZeroU16>,
|
||||
hostname: Option<IpAddr>,
|
||||
external_ip: Option<IpAddr>,
|
||||
}
|
||||
|
||||
// this intentionally does not implement display
|
||||
#[derive(Deserialize, Serialize, Clone)]
|
||||
pub struct ClientSecret(String);
|
||||
|
@ -210,16 +188,6 @@ impl std::fmt::Debug for ClientSecret {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Default)]
|
||||
struct YamlExtendedOptions {
|
||||
memory_quota: Option<Mebibytes>,
|
||||
cache_type: Option<CacheType>,
|
||||
ephemeral_disk_encryption: Option<bool>,
|
||||
enable_metrics: Option<bool>,
|
||||
logging_level: Option<LevelFilter>,
|
||||
cache_path: Option<PathBuf>,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Copy, Clone, Debug)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
pub enum CacheType {
|
||||
|
@ -247,6 +215,38 @@ impl Default for CacheType {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
struct YamlArgs {
|
||||
// Naming is legacy
|
||||
max_cache_size_in_mebibytes: Mebibytes,
|
||||
server_settings: YamlServerSettings,
|
||||
// This implementation custom options
|
||||
extended_options: Option<YamlExtendedOptions>,
|
||||
}
|
||||
|
||||
// Naming is legacy
|
||||
#[derive(Deserialize)]
|
||||
struct YamlServerSettings {
|
||||
secret: ClientSecret,
|
||||
#[serde(default)]
|
||||
port: Port,
|
||||
external_max_kilobits_per_second: KilobitsPerSecond,
|
||||
external_port: Option<Port>,
|
||||
graceful_shutdown_wait_seconds: Option<NonZeroU16>,
|
||||
hostname: Option<IpAddr>,
|
||||
external_ip: Option<IpAddr>,
|
||||
}
|
||||
|
||||
#[derive(Deserialize, Default)]
|
||||
struct YamlExtendedOptions {
|
||||
memory_quota: Option<Mebibytes>,
|
||||
cache_type: Option<CacheType>,
|
||||
ephemeral_disk_encryption: Option<bool>,
|
||||
enable_metrics: Option<bool>,
|
||||
logging_level: Option<LevelFilter>,
|
||||
cache_path: Option<PathBuf>,
|
||||
}
|
||||
|
||||
#[derive(Clap, Clone)]
|
||||
#[clap(version = crate_version!(), author = crate_authors!(), about = crate_description!())]
|
||||
struct CliArgs {
|
||||
|
@ -332,3 +332,13 @@ impl Display for UnstableOptions {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod sample_yaml {
|
||||
use crate::config::YamlArgs;
|
||||
|
||||
#[test]
|
||||
fn sample_yaml_parses() {
|
||||
assert!(serde_yaml::from_str::<YamlArgs>(include_str!("../settings.sample.yaml")).is_ok())
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue