Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Test individual features
- Convert package to 2021 edition.
- Format imports.

Signed-off-by: David Calavera <[email protected]>
  • Loading branch information
calavera committed May 28, 2023
commit e7b229a3f228e097a92f72a4877feec35faac4be
9 changes: 9 additions & 0 deletions .github/workflows/build-events.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,12 @@ jobs:
with:
package: aws_lambda_events
toolchain: ${{ matrix.toolchain}}
check-event-features:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2

- name: Test individual event features
run: make check-event-features
41 changes: 41 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -60,3 +60,44 @@ invoke-integration-api-%:
curl -X POST -d '{"command": "hello"}' $(API_URL)/trait/post
curl -X POST -d '{"command": "hello"}' $(API_URL)/al2/post
curl -X POST -d '{"command": "hello"}' $(API_URL)/al2-trait/post

# Test individual event features to ensure optional dependencies
# are correctly loaded when all default features are disabled.
check-event-features:
cargo test --package aws_lambda_events --no-default-features --features activemq
cargo test --package aws_lambda_events --no-default-features --features alb
cargo test --package aws_lambda_events --no-default-features --features apigw
cargo test --package aws_lambda_events --no-default-features --features appsync
cargo test --package aws_lambda_events --no-default-features --features autoscaling
cargo test --package aws_lambda_events --no-default-features --features chime_bot
cargo test --package aws_lambda_events --no-default-features --features clientvpn
cargo test --package aws_lambda_events --no-default-features --features cloudwatch_events
cargo test --package aws_lambda_events --no-default-features --features cloudwatch_logs
cargo test --package aws_lambda_events --no-default-features --features code_commit
cargo test --package aws_lambda_events --no-default-features --features codebuild
cargo test --package aws_lambda_events --no-default-features --features codedeploy
cargo test --package aws_lambda_events --no-default-features --features codepipeline_cloudwatch
cargo test --package aws_lambda_events --no-default-features --features codepipeline_job
cargo test --package aws_lambda_events --no-default-features --features cognito
cargo test --package aws_lambda_events --no-default-features --features config
cargo test --package aws_lambda_events --no-default-features --features connect
cargo test --package aws_lambda_events --no-default-features --features dynamodb
cargo test --package aws_lambda_events --no-default-features --features ecr_scan
cargo test --package aws_lambda_events --no-default-features --features firehose
cargo test --package aws_lambda_events --no-default-features --features iam
cargo test --package aws_lambda_events --no-default-features --features iot
cargo test --package aws_lambda_events --no-default-features --features iot_1_click
cargo test --package aws_lambda_events --no-default-features --features iot_button
cargo test --package aws_lambda_events --no-default-features --features iot_deprecated
cargo test --package aws_lambda_events --no-default-features --features kafka
cargo test --package aws_lambda_events --no-default-features --features kinesis
cargo test --package aws_lambda_events --no-default-features --features kinesis_analytics
cargo test --package aws_lambda_events --no-default-features --features lambda_function_urls
cargo test --package aws_lambda_events --no-default-features --features lex
cargo test --package aws_lambda_events --no-default-features --features rabbitmq
cargo test --package aws_lambda_events --no-default-features --features s3
cargo test --package aws_lambda_events --no-default-features --features s3_batch_job
cargo test --package aws_lambda_events --no-default-features --features ses
cargo test --package aws_lambda_events --no-default-features --features sns
cargo test --package aws_lambda_events --no-default-features --features sqs
cargo test --package aws_lambda_events --no-default-features --features streams
25 changes: 13 additions & 12 deletions lambda-events/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,19 @@ repository = "https://github.com/awslabs/aws-lambda-rust-runtime"
readme = "README.md"
keywords = ["lambda", "aws", "amazon", "events", "S3"]
categories = ["api-bindings", "encoding", "web-programming"]
edition = "2021"

[dependencies]
base64 = "0.21"
http = "0.2"
http-body = "0.4"
http-serde = "^1"
http = { version = "0.2", optional = true }
http-body = { version = "0.4", optional = true }
http-serde = { version = "^1", optional = true }
serde = "^1"
serde_derive = "^1"
serde_with = { version = "^3", features = ["json"], optional = true }
serde_json = "^1"
serde_dynamo = { version = "^4.1", optional = true }
bytes = { version = "1", features = ["serde"] }
bytes = { version = "1", features = ["serde"], optional = true }
chrono = { version = "0.4.23", default-features = false, features = [
"clock",
"serde",
Expand Down Expand Up @@ -78,8 +79,8 @@ default = [
]

activemq = []
alb = ["query_map"]
apigw = ["query_map"]
alb = ["bytes", "http", "http-body", "http-serde", "query_map"]
apigw = ["bytes", "http", "http-body", "http-serde", "query_map"]
appsync = []
autoscaling = ["chrono"]
chime_bot = ["chrono"]
Expand All @@ -97,19 +98,19 @@ config = []
connect = []
dynamodb = ["chrono", "serde_dynamo", "streams"]
ecr_scan = []
firehose = []
firehose = ["chrono"]
iam = []
iot = ["iam"]
iot = ["bytes", "http", "http-body", "http-serde", "iam"]
iot_1_click = []
iot_button = []
iot_deprecated = ["iot"]
kafka = []
kinesis = []
kafka = ["chrono"]
kinesis = ["chrono"]
kinesis_analytics = ["kinesis"]
lambda_function_urls = []
lambda_function_urls = ["bytes", "http", "http-body", "http-serde"]
lex = []
rabbitmq = []
s3 = ["chrono"]
s3 = ["bytes", "chrono", "http", "http-body", "http-serde"]
s3_batch_job = ["s3"]
ses = ["chrono"]
sns = ["chrono", "serde_with"]
Expand Down
2 changes: 1 addition & 1 deletion lambda-events/src/custom_serde/mod.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
use base64::Engine;
use serde;
use serde::de::{Deserialize, Deserializer, Error as DeError};
use serde::ser::Serializer;
use std::collections::HashMap;
Expand Down Expand Up @@ -80,6 +79,7 @@ where
feature = "apigw",
feature = "cloudwatch_events",
feature = "code_commit",
feature = "cognito",
test
))]
pub(crate) fn deserialize_nullish_boolean<'de, D>(deserializer: D) -> Result<bool, D::Error>
Expand Down
Loading